-
Retail Ida patterns
Hello
instead of posting offsets that change from patch to match i make this thread to post patterns that i found that work over different patches.
Code:
lua_createtable -> 48 89 5C 24 ?? 48 89 6C 24 ?? 48 89 74 24 ?? 57 48 83 EC ?? 4C 8B 49 ?? 41 8B F0 8B EA 48 8B F9 49 8B 41 ?? 49 39 41 ?? 72 0B 80 79 ?? ?? 75 05 E8 ?? ?? ?? ?? 48 8B 5F ?? 44 8B C6 48 8B 05 ?? ?? ?? ?? 8B D5 48 8B CF 48 89 43 ?? E8 ?? ?? ?? ?? 48 8B 4C 24 ?? 48 89 03 C7 43 ?? ?? ?? ?? ?? 48 83 47 ?? ?? 48 8B 5C 24 ?? 48 8B 6C 24 ?? 48 8B 74 24 ?? 48 83 C4 ?? 5F E9 ?? ?? ?? ??
lua_setfield -> 48 89 5C 24 08 57 48 83 EC 40 4D 8B D0 48 8B D9 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 48 8B F8 48 89 54 24 30 49 C7 C0 FF FF FF FF 0F 1F 44 00 00 49 FF C0 43 80 3C 02 00 75 F6 49 8B D2 48 8B CB E8 ?? ?? ?? ?? 4C 8B 4B 28 4C 8D 44 24 20 49
lua_getmetatable -> 48 83 EC ?? 4C 8B D1 E8 ?? ?? ?? ?? 48 63
lua_insert -> 48 89 5C 24 ?? 48 89 6C 24 ?? 57 48 83 EC ?? 48 8B F9 E8
lua_tonumber -> 48 83 EC ?? E8 ?? ?? ?? ?? 83 78 ?? ?? 74 17
lua_isstring -> 48 83 EC ?? E8 ?? ?? ?? ?? 48 8D 0D ?? ?? ?? ?? 48 3B C1 74
lua_touserdata -> 48 83 EC ?? E8 ?? ?? ?? ?? 8B 48 ?? 83 F9 ?? 74 0C
lua_newuserdata -> 48 89 5C 24 ?? 57 48 83 EC ?? 4C 8B 41 ?? 48 8B FA 48 8B D9 49 8B
lua_objlen -> 40 53 48 83 EC ?? 4C 8B D1 E8
lua_pcall -> 40 55 48 83 EC ?? 48 8D 6C 24 ?? 48 89 5D ?? 44
lua_pushboolean -> 48 8B 05 ?? ?? ?? ?? 4C 8B 41
lua_pushcclosure -> 48 89 5C 24 08 48 89 6C 24 10 48 89 74 24 18 48 89 7C 24 20 41 56 48 83 EC 20 48 8B D9 49 63 F0 48 8B 49 38 48 8B FA 48 8B 41 70 48 39 41 78 72 0E 80 7B 7E 00 75 08 48 8B CB E8 ?? ?? ?? ?? 48 8B 43 40 48 3B 43 68 75 09 4C 8B 83 90 00 00 00 EB 0B 48 8B 40 08 48 8B 08 4C 8B 41 20 8B D6 48 8B CB E8 ?? ?? ?? ?? 4C 8D 34 76 48 8B E8 49 C1 E6 03 48 89 78 30 4C 29 73 28 85 F6 74 7D 66 90 48 8B 7B 28 49 83 EE 18 49 03 FE FF CE 0F 10 07 41 0F 11 44 2E 38 F2 0F 10 4F 10 F2 41 0F 11 4C 2E 48 48 8B 57 10 48 85 D2 74 4C 83 3D ?? ?? ?? ?? ?? 74 43 83 3D ?? ?? ?? ?? ?? 75 3A 48 8B CB E8 ?? ?? ?? ?? 48 8B 47 10 48 89 05 ?? ?? ?? ?? 48 85 C0 74 22 48 83 3D ?? ?? ?? ?? ?? 75 18 83 3D ?? ?? ?? ?? ?? 48 89 05 ?? ?? ?? ?? 74 08 48 8B CB E8 ?? ?? ?? ?? 85 F6 75 85 48 8B 4B 28 48 8B 05 ?? ?? ?? ?? 48 89 41 10 48 89 29 C7 41 08 06 00 00 00 48 83 43 28 18 48 8B 4C 24 28 48 8B 5C 24 30 48 8B 6C 24 38 48 8B 74 24 40 48 8B 7C 24 48 48 83 C4 20 41 5E E9 ?? ?? ?? ??
lua_pushinteger -> 4C 8B 41 ?? 48 8B 05 ?? ?? ?? ?? 66
lua_pushstring -> 48 89 6C 24 ?? 56 48 83 EC ?? 48 8B EA 48 8B F1 48 85 D2 75
lua_pushvalue -> 48 89 5C 24 ?? 57 48 83 EC ?? 48 8B D9 E8 ?? ?? ?? ?? 48 8B 4B ?? 48 8B F8 0F 10
lua_rawget -> 48 89 5C 24 ?? 57 48 83 EC ?? 48 8B D9 E8 ?? ?? ?? ?? 48 8B 53 ?? 48 83
lua_rawgeti -> 48 89 5C 24 ?? 57 48 83 EC ?? 45 8B D0 48 8B D9 E8
lua_rawset -> 48 89 5C 24 ?? 48 89 74 24 ?? 57 48 83 EC ?? 48 8B D9 E8 ?? ?? ?? ?? 48 8B 7B ?? 48
lua_rawseti -> 48 89 5C 24 ?? 48 89 74 24 ?? 57 48 83 EC ?? 45 8B D0 48
lua_remove -> 48 89 5C 24 ?? 57 48 83 EC ?? 48 8B F9 E8 ?? ?? ?? ?? 48 8D 58
lua_replace -> 48 89 5C 24 ?? 48 89 74 24 ?? 57 48 83 EC
lua_getfield -> 48 89 5C 24 08 57 48 83 EC 40 4D 8B D0 48 8B D9 E8 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 48 8B F8 48 89 54 24 30 49 C7 C0 FF FF FF FF 0F 1F 44 00 00 49 FF C0 43 80 3C 02 00 75 F6 49 8B D2 48 8B CB E8 ?? ?? ?? ?? 4C 8B 4B 28 4C 8D 44 24 20 48
lua_setmetatable -> 40 53 48 83 EC ?? 48 8B D9 E8 ?? ?? ?? ?? 48 8B 53 ?? 4C 8B
lua_settable -> 40 53 48 83 EC ?? 48 8B D9 E8 ?? ?? ?? ?? 4C 8B 43 ?? 48 8B D0
lua_settop -> 48 63 C2 4C 8B C1 85
lua_tointeger -> 40 57 48 83 EC ?? 48 8B F9 E8 ?? ?? ?? ?? 83 78
lua_tolstring -> 48 89 5C 24 ?? 48 89 74 24 ?? 57 48 83 EC ?? 49 8B F8 8B F2 48 8B D9 E8 ?? ?? ?? ?? 4C
lua_type -> 48 83 EC ?? E8 ?? ?? ?? ?? 48 8D 0D ?? ?? ?? ?? 48 3B C1 75
lua_execute -> 48 89 5C 24 ?? 48 89 6C 24 ?? 56 57 41 56 48 81 EC ?? ?? ?? ?? 48 8B 3D
lua_Gettext -> 40 55 41 54 41 55 41 56 41 57 48 83 EC ?? 48 8D 6C 24 ?? 48 89 5D ?? 4C 8D 35
lua_retcheck -> 48 89 7C 24 ?? 4C 8B C1 0F 1F 84 00 ?? ?? ?? ?? 90
lua_argerror -> 48 89 5C 24 ?? 48 89 74 24 ?? 57 48 81 EC ?? ?? ?? ?? 49 8B F0 8B DA
lua_checktype -> 48 89 5C 24 08 48 89 74 24 10 57 48 83 EC 20 8B FA 48 8B F1 41 8B D0 E8 ?? ?? ?? ?? 8B D7 48 8B CE 48 8B D8 E8 ?? ?? ?? ?? 8B D0 48 8B CE E8 ?? ?? ?? ?? 4C 8B C8 48 8D 15 ?? ?? ?? ?? 4C 8B C3 48 8B CE E8 ?? ?? ?? ?? 4C 8B C0 8B D7 48 8B CE 48 8B 5C 24 30 48 8B 74 24 38 48 83 C4 20 5F E9 ?? ?? ?? ??
lua_error -> 48 8B C4 48 89 50 10 4C 89 40 18 4C 89 48 20 53 57 48 81 EC A8
lua_loadbuffer -> 40 55 48 83 EC ?? 48 8D 6C 24 ?? 48 89 5D ?? 49 83
lua_openlib -> 40 55 41 54 41 55 41 56 41 57 48 83 EC ?? 48 8D 6C 24 ?? 48 89 5D ?? 4D 8B F0
lua_getfunc -> 40 53 48 81 EC A0 00 00 00 BA 01 00 00 00 48 8B D9 E8 ?? ?? ?? ?? BA
lua_getstack : 4C 8B 49 40 4C 8B D9
lua_optinteger : 48 89 5C 24 08 48 89 74 24 10 57 48 83 EC 20 41 8B F0 8B DA 48 8B F9 E8 ?? ?? ?? ?? 85
lua_concat -> 48 89 5C 24 08 57 48 83 EC 20 48 63 DA 48 8B F9 83
lua_pushvfstring -> 48 89 5C 24 08 48 89 74 24 10 57 48 83 EC 20 4C 8B 49 38 49 8B F8 48 8B F2 48 8B D9 49 8B 41 70 49 39 41 78 72 0B 80 79 7E 00 75 05 E8 ?? ?? ?? ?? 4C 8B C7 48 8B D6 48 8B CB 48 8B 5C 24 30 48 8B 74 24 38 48 83 C4 20 5F E9 ?? ?? ?? ??
lua_getinfo -> 48 89 6C 24 18 48 89 74 24 20 57 41 54 41 56 48 83 EC 30 33
lua_iscfunction -> 48 83 EC 28 E8 ?? ?? ?? ?? 83 78 08 06
luaL_getmetafield -> 48 89 5C 24 08 57 48 83 EC 20 49 8B F8 48 8B D9 E8 ?? ?? ?? ?? 85 C0 74 36
lua_checktype2 -> 48 89 5C 24 08 48 89 74 24 10 57 48 83 EC 20 41 8B D8 8B FA 48 8B F1 E8 ?? ?? ?? ?? 3B
lua_toboolean -> 48 83 EC 28 E8 ?? ?? ?? ?? 8B 48 08 85
lua_pushnil -> 48 8B 51 ?? 48 8B 05 ?? ?? ?? ?? 48 89 42 ?? C7
FrameScript::GetValidatedFrame -> 48 89 5C 24 10 48 89 6C 24 18 48 89 74 24 20 57 48 83 EC 20 48 85
FrameScript_tocfunction -> 48 83 EC ?? E8 ?? ?? ?? ?? 8B 48 ?? 83 F9 ?? 74 18
FrameScript_InvaildPointer -> 40 56 48 83 EC ?? 48 8B 15 ?? ?? ?? ?? 48 8B
FrameScript_getfield -> 40 55 41 56 41 57 48 83 EC ?? 48 8D 6C 24 ?? 48 89 5D ?? 45 8B F9
CVar_Register -> 4C 8B DC 49 89 5B ?? 49 89 6B ?? 49 89 73 ?? 49 89 7B ?? 41 54 41 56 41 57 48 81
FrameScript_FillScriptMethodTable -> 45 85 C0 0F 8E ?? ?? ?? ?? 48 89 5C 24 08
CGWorldFrame::GetActiveCamera -> 48 8B 05 ?? ?? ?? ?? 48 85 C0 74 08 48 8B 80 80
CGCamera::ZoomOut -> 48 83 EC ?? F6 81 ?? ?? ?? ?? ?? 4C 8B C9 0F 85 CA
CGCamera::ZoomIn -> 48 83 EC ?? F6 81 ?? ?? ?? ?? ?? 4C 8B C9 0F 85 C7
CGGameUI::Reload -> 48 8B C4 57 48 81 EC ?? ?? ?? ?? 80 3D ?? ?? ?? ?? ?? 8B
CGGameUI::CheckPermissions -> 40 53 48 83 EC ?? 48 63 D9 E8 ?? ?? ?? ?? 3D
ConsoleCommandUnregister -> 48 83 EC ?? 48 85 C9 74 4D 48
ConsoleCommandRegister -> 48 89 5C 24 08 48 89 74 24 10 48 89 7C 24 20 55 41 54 41 55 41 56 41 57 48 8B EC 48 81 EC 80 00 00 00 33
CGUnit_C::GetObjectName -> 48 89 5C 24 ?? 48 89 74 24 ?? 41 56 48 81 EC ?? ?? ?? ?? 4D 8B F1
Script_GetGUIDFromToken -> 48 89 5C 24 ?? 48 89 74 24 ?? 48 89 4C 24 ?? 55 57 41 54 41 55
ObjectManager -> 4C 8B 3D ?? ?? ?? ?? 33 F6 33 ED
ClntObjMgrEnumVisibleObjectsPtr -> 48 89 54 24 ?? 48 89 4C 24 ?? 55 53 56 57 41 54 41 55 41 56 41 57 48 8D 6C 24 B8
ClntObjMgrEnumVisibleObjectsPtr_1 -> 48 89 54 24 ?? 48 89 4C 24 ?? 55 53 56 57 41 54 41 55 41 56 41 57 48 8D 6C 24 A8 48 81 EC ?? ?? ?? ?? 48
Pattern Count 65
Patch : 11.1.5.60568
ill update the patterns and patch if anything changes.
Notes :
Updated CGWorldFrame::GetActiveCamera > can be found by looking into CameraZoomIn lua function.
Last edited by Makkah; 05-08-2025 at 04:47 PM.
Reason: update
-
Post Thanks / Like - 4 Thanks
-
Member
thx for the info,
I haven't manually checked each function but my script shows that
CGWorldFrame::GetActiveCamera -> E8 ?? ?? ?? ?? 45 33 C0 0F 28 CE
is at an address in the middle of another function instead of being the start of a function(0x1425fc053, my base is at 0x140000000):
00000001425FC053 E8 18 3D CB FF call sub_1422AFD70
00000001425FC058 45 33 C0 xor r8d, r8d
00000001425FC05B 0F 28 CE movaps xmm1, xmm6
00000001425FC05E 48 8B C8 mov rcx, rax
00000001425FC061 E8 BA 5E 87 00 call sub_142E71F20
00000001425FC066
00000001425FC066 loc_1425FC066: ; CODE XREF: sub_1425FBF90+C1↑j
00000001425FC066 0F 28 74 24 30 movaps xmm6, [rsp+48h+var_18]
00000001425FC06B
Is it correct?
Last edited by SailorMars; 05-08-2025 at 04:39 PM.
-
Found it via string search for `CameraZoomIn` in Lua, traced how the active cam is pushed into `CGCamera::ZoomIn`. Current bytes: `48 8B 05 ?? ?? ?? ?? 48 85 C0 74 08 48 8B 80 80`.
image.png
Last edited by Makkah; 05-08-2025 at 05:13 PM.
-
Member
ObjectManager -> 4C 8B 3D ?? ?? ?? ?? 33 F6 33 ED - 
have FirstObj and steps?
-
Since you have the pattern to get the pointer to the object structure, you can use CE or Reclass (Modified ofc) to see the structure and figure out FIrstObject and NextObject. all the information you will need is on this forum.
-
Member
I can't figure out the structure for half a day...
-
Member
Last edited by sanatina; 1 Week Ago at 11:20 AM.
-
Contributor
Converted them 4months ago from classic to retail.
Most.of them will.probably still work if not i can share the .idb.
Enjoy:
-xhook_wowclassic_v2/Offsets.cpp at main . maikel233/-xhook_wowclassic_v2 . GitHub
-
Post Thanks / Like - 2 Thanks
-
Member
Thanks, Maikel! This has been incredibly helpful for learning WoW.
If you'd be willing to share your .idb, I’d really appreciate it!