I'm late to the party, but here's a couple:
<Offset>
<Name>LuaGetState</Name>
<Address>0x004997B0</Address>
</Offset>
<Offset>
<Name>LuaThreadLock</Name>
<Address>0x00499720</Address>
</Offset>
I'm late to the party, but here's a couple:
<Offset>
<Name>LuaGetState</Name>
<Address>0x004997B0</Address>
</Offset>
<Offset>
<Name>LuaThreadLock</Name>
<Address>0x00499720</Address>
</Offset>
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." - Martin Golding
"I cried a little earlier when I had to poop" - Sku
I believe Warden has it's own VMT. Set a hardware on-access breakpoint in OllyDbg for the TextSegEnd address (listed earlier in this thread), find the address of the calling function, and locate it in the VMT. I think you need only insert a hooked function into its slot in the VMT which always returns true.
Or, you could search through the Wow.exe code segment for a series of 0xCC that is > 6 bytes long. Write "PUSH MyFunction; RETN" to one of those series of INT3s and register it as your function callback. It's in the text segment so it passes the out of scope check, and I don't think it's being looked for at the moment. Don't know if they're CRCing the text segment or not, though.
Lasttarget = 0x011D3F70
You can simply write a GUID in it and send the key for "Target Last Target" @ WoW.![]()
Not sure what to do with this. As stated in an older thread, I call this function yet nothing happens.
I've done this while stationary and while moving. My character does not rotate.Code:unsigned long sf = 0x005AFA10; float rad = 0.0; CGObject_C *p = gpWoWX->GetCurMgr()->GetLocalPlayer(); DBGLOG("Calling SetFacing at 0x" << std::hex << sf); _asm { mov ecx, p push rad call sf } DBGLOG("Done.");
has anyone found the new pointer to the cameradata? i'd have a look myself, but i am hardly below the surface of all this RE stuff =(
Maybe this is a good start to look for it:
0x006C3740 (GetCamera)
try declare a typedef for it. I havent tried that code but i think it should work. Also i had some problem when trying to get it to work it wouldn't use my float and therefor allways turn the same way
Code:typedef int ( __stdcall *tSetFacing)(float* angle); tSetFacing SetFacing = (tSetFacing)0x005AFA10;
Last edited by Nesox; 05-27-2009 at 04:32 AM.
Thank you. I will try that in the morning and post my results.
Edit: Nope. Same result. Nada! In fact, now my hw on-execute breakpoint is not even being triggered.
Last edited by namreeb; 05-27-2009 at 01:43 PM.
SetFacing works fine for me, just tested it.
typedef void (__thiscall * tSetFacing)(void* lp, float angle);
tSetFacing oSetFacing = (tSetFacing)0x005AFA10;
then call it somewhere:
oSetFacing(reinterpret_cast<void*>(GetLocalPlayer()), 1.337f);
This is if you don't have a reconstructed player class.