hi,
i'm currently hooking endscene and trying to use the enum visible objects function. for the moment i'm doing the same as apoc suggested in his guide for making a better objectmanager, hoever everytime the enumvis. funktion is called wow crashes. here is the crashlog
Code:
World of WarCraft (build 11403)
This application has encountered a critical error:
ERROR #132 (0x85100084) Fatal Exception
Exception: 0xC0000005 (ACCESS_VIOLATION) at 0023:0047B95F
The instruction at "0x0047B95F" referenced memory at "0x000000AC".
The memory could not be "read".
WoWBuild: 11403
----------------------------------------
Memory Dump
----------------------------------------
Code: 16 bytes starting at (EIP = 0047B95F)
0047B95F: 8B 40 04 A8 01 57 75 04 85 C0 75 04 33 DB EB 02 [email protected]...
Stack: 1024 bytes starting at (ESP = 1255FA4C)
* = addr ** *
1255FA40: 19 00 00 00 00 00 00 00 60 BD 76 15 60 BD 76 15 ........`.v.`.v.
1255FA50: E4 FB 55 12 D4 FA 55 12 EB 42 29 04 52 12 62 04 ..U...U..B).R.b.
1255FA60: 00 00 00 00 94 DF 6C 1B E8 59 18 6B FF FF FF FF ......l..Y.k....
1255FA70: 00 00 00 00 5C FA 55 12 EB 42 29 04 0C 80 BD 22 ....\.U..B)...."
1255FA80: 2C 80 BD 22 00 00 00 00 D4 FA 55 12 00 00 00 00 ,.."......U.....
1255FA90: 44 02 B3 22 60 BD 76 15 00 00 00 80 B4 FA 55 12 D.."`.v.......U.
1255FAA0: 74 FD 26 6B 40 B9 47 00 00 00 00 00 52 12 62 04 t.&[email protected].
1255FAB0: 00 00 00 00 00 00 00 00 00 00 00 00 52 12 62 04 ............R.b.
1255FAC0: 00 00 00 00 52 12 62 04 E4 FB 55 12 18 FB 55 12 ....R.b...U...U.
1255FAD0: 30 FB 55 12 54 FB 55 12 E9 45 29 04 00 00 00 00 0.U.T.U..E).....
1255FAE0: 00 80 BD 22 2C 80 BD 22 00 80 BD 22 88 E5 FD 00 ...",.."..."....
1255FAF0: A8 03 B3 22 10 0C B3 22 00 00 00 00 00 00 00 00 ..."..."........
1255FB00: 00 00 00 00 00 00 00 00 14 00 B3 22 00 00 00 00 ..........."....
1255FB10: 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ................
1255FB20: 14 00 B3 22 00 00 00 00 01 00 00 00 00 00 00 00 ..."............
1255FB30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
1255FB40: 00 00 00 00 00 00 80 7F E4 FB 55 12 48 57 75 15 ..........U.HWu.
1255FB50: 00 9C 2F 01 6C FB 55 12 92 3D 29 04 60 BD 76 15 ../.l.U..=).`.v.
1255FB60: 00 00 00 00 00 00 C0 FF 00 00 00 00 B4 FB 55 12 ..............U.
1255FB70: BA 3C 29 04 C4 FB 55 12 17 A0 63 09 28 FB 55 12 .<)...U...c.(.U.
1255FB80: B8 FB 55 12 D0 8C 6B 6B FF FF FF FF 08 7D 28 6B ..U...kk.....}(k
1255FB90: 42 1B 58 77 37 86 48 6B 5F A0 63 09 00 9C 2F 01 B.Xw7.Hk_.c.../.
1255FBA0: 48 57 75 15 00 00 00 00 01 00 00 00 00 00 00 00 HWu.............
1255FBB0: 00 C8 43 13 DC FB 55 12 37 10 62 04 48 09 62 04 ..C...U.7.b.H.b.
1255FBC0: 60 BD 76 15 C4 FF 55 12 02 27 36 6B FF FF FF FF `.v...U..'6k....
1255FBD0: 10 FD 55 12 8C 02 25 01 48 57 75 15 10 FC 55 12 ..U...%.HWu...U.
1255FBE0: 27 01 A2 66 00 C8 43 13 00 9C 2F 01 10 6A A6 66 '..f..C.../..j.f
1255FBF0: 08 4B 75 15 48 57 75 15 00 00 00 00 38 FC 55 12 .Ku.HWu.....8.U.
1255FC00: 08 4B 75 15 48 57 75 15 00 00 00 00 00 00 00 00 .Ku.HWu.........
1255FC10: 4C FC 55 12 5B 0F A2 66 48 57 75 15 00 9C 2F 01 L.U.[..fHWu.../.
1255FC20: 48 57 75 15 3C 6A A2 66 A0 FC 55 12 00 00 00 00 HWu.<j.f..U.....
1255FC30: B8 D0 72 15 48 57 75 15 00 00 00 00 00 00 00 00 ..r.HWu.........
1255FC40: F6 00 00 00 7B 01 00 00 B8 D0 72 15 64 FC 55 12 ....{.....r.d.U.
1255FC50: DD 6A A2 66 08 4B 75 15 1C 23 30 01 8C FC 55 12 .j.f.Ku..#0...U.
1255FC60: 00 00 00 00 2C FD 55 12 D1 B1 A6 66 08 4B 75 15 ....,.U....f.Ku.
1255FC70: 1C 23 30 01 8C FC 55 12 00 00 00 00 00 10 00 00 .#0...U.........
1255FC80: C8 E9 75 15 68 37 6D 15 08 4B 75 15 00 00 00 00 ..u.h7m..Ku.....
1255FC90: 00 00 00 00 00 00 00 00 00 00 76 43 00 80 BD 43 ..........vC...C
1255FCA0: 00 00 00 00 00 00 00 00 A0 DD 73 15 00 00 25 01 ..........s...%.
1255FCB0: 00 00 00 00 02 00 00 00 00 00 00 00 00 01 00 00 ................
1255FCC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
1255FCD0: 00 00 00 00 00 01 00 00 EC FC 55 12 04 EE 75 15 ..........U...u.
1255FCE0: 00 83 6D 15 00 00 00 00 01 00 00 00 14 FD 55 12 ..m...........U.
1255FCF0: 41 BE A0 66 00 00 00 00 C8 E9 75 15 00 E9 75 15 A..f......u...u.
1255FD00: 00 00 00 00 00 00 00 00 00 00 00 00 00 EE 75 15 ..............u.
1255FD10: 00 00 00 00 00 00 00 00 18 D1 72 15 02 00 00 00 ..........r.....
1255FD20: 00 00 00 00 00 10 00 00 00 00 00 00 84 FD 55 12 ..............U.
1255FD30: 73 D3 A0 66 B8 D0 72 15 1C 23 30 01 68 FD 55 12 s..f..r..#0.h.U.
1255FD40: 00 00 00 00 C8 E9 75 15 00 00 00 00 50 B8 76 15 ......u.....P.v.
1255FD50: 80 31 FF 00 1C 23 30 01 00 00 00 00 00 00 00 00 .1...#0.........
1255FD60: 00 00 76 43 00 80 BD 43 00 00 00 00 00 00 00 00 ..vC...C........
1255FD70: 00 00 00 00 00 00 76 43 00 80 BD 43 96 2F 7B 09 ......vC...C./{.
1255FD80: C8 E9 75 15 20 FE 55 12 EB D3 A0 66 C8 E9 75 15 ..u. .U....f..u.
1255FD90: 80 31 FF 13 74 FE 55 12 C8 E9 75 15 00 00 00 00 .1..t.U...u.....
1255FDA0: D0 22 30 01 00 FD 55 12 60 FE 55 12 30 FE 55 12 ."0...U.`.U.0.U.
1255FDB0: 4E BD A6 66 00 D1 72 15 00 00 00 00 1C 23 30 01 N..f..r......#0.
1255FDC0: D0 D1 72 15 74 FE 55 12 C8 E9 75 15 00 00 00 00 ..r.t.U...u.....
1255FDD0: 00 00 00 00 00 00 00 00 D4 D0 72 15 C8 E9 75 15 ..........r...u.
1255FDE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 FE 55 12 ..............U.
1255FDF0: 6E 2F A0 66 00 D0 72 15 00 00 00 00 00 00 00 00 n/.f..r.........
1255FE00: 00 00 00 00 00 9C A0 66 00 00 00 00 00 00 00 00 .......f........
1255FE10: 2C FE 55 12 1A 3B A0 66 B4 D0 72 15 FA 2C 7B 09 ,.U..;.f..r..,{.
1255FE20: 8C FE 55 12 6F 94 A0 66 80 31 FF 13 D4 D0 72 15 ..U.o..f.1....r.
1255FE30: 74 FE 55 12 01 00 00 00 00 00 00 00 D0 D1 72 15 t.U...........r.
1255FE40: 00 22 C5 77 60 FE 55 12 00 00 00 00 F0 AC 2F 01 .".w`.U......./.
my EnumObjDelegate looks like this:
Code:
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate int EnumObjectsCallbackDelegate(int lowGuid, int highGuid, uint filter);
because afaik the guid is passed via 2 ints (but that seems to be wrong or it wouldn't crash) what leads me to my next question. is
Code:
ulong hGuid = (ulong)highGuid;
ulong temp_hguid = hGuid << 32;
ulong lGuid = (ulong)lowGuid;
ulong guid = temp_hguid | lGuid;
IntPtr objPtr = InternalGetObjectByGuid(guid);
the right aproach to put the guid back together?