Code:
std::vector<char> pattern;
// lua_pushcclosure
{
const char data[] = {
0x55, 0x8b, 0xec, 0x53, 0x56, 0x8b, 0x75, 0x08,
0x8b, 0x46, 0x14, 0x8b
};
pattern.assign(data, data + sizeof data);
Offsets::lua_pushcclosure = (p_lua_pushcclosure)FindPattern(pattern, 0x00, Offsets::WowModuleStart, Offsets::WowModuleEnd);
}
// lua_setfield
{
const char data[] = {
0x55, 0x8b, 0xec, 0x83, 0xec, 0x10, 0x8b, 0x45,
0x0c, 0x53, 0x56, 0x8b, 0x75, 0x08, 0x57, 0x8b,
0xce, 0xe8, 0xaa
};
pattern.assign(data, data + sizeof data);
Offsets::lua_setfield = (p_lua_setfield)FindPattern(pattern, 0x00, Offsets::WowModuleStart, Offsets::WowModuleEnd);
}
// lua_gettop
{
const char data[] = {
0x55, 0x8b, 0xec, 0x8b, 0x4d, 0x08, 0x8b, 0x41,
0x0c, 0x2b
};
pattern.assign(data, data + sizeof data);
Offsets::lua_gettop = (p_lua_gettop)FindPattern(pattern, 0x00, Offsets::WowModuleStart, Offsets::WowModuleEnd);
}
// lua_tolstring
{
const char data[] = {
0x55, 0x8b, 0xec, 0x56, 0x8b, 0x75, 0x08, 0x57,
0x8b, 0x7d, 0x0c, 0x8b, 0xc7
};
pattern.assign(data, data + sizeof data);
Offsets::lua_tolstring = (p_lua_tolstring)FindPattern(pattern, 0x00, Offsets::WowModuleStart, Offsets::WowModuleEnd);
}
// lua_pushstring
{
const char data[] = {
0x55, 0x8b, 0xec, 0x8b, 0x55, 0x0c, 0x85, 0xd2,
0x75
};
pattern.assign(data, data + sizeof data);
Offsets::lua_pushstring = (p_lua_pushstring)FindPattern(pattern, 0x00, Offsets::WowModuleStart, Offsets::WowModuleEnd);
}