Originally Posted by
Robske
Wasn't aware of this. Do you know of anything that is common between these private hacks and PQR?
Code:
public string GetLocalizedText(string command)
{
string str = "";
if (this.parentHook.Installed)
{
uint addr = this.parentHook.Memory.AllocateMemory(Encoding.UTF8.GetBytes(command).Length + 1);
uint u1 = (uint) (((int) WowBase) + ns0.Offsets .EndScene .ClntObjMgrGetActivePlayerObj );
uint u2 = (uint)(((int)WowBase) + ns0.Offsets.EndScene .FrameScript__GetLocalizedText );
this.parentHook.Memory.WriteBytes(addr, Encoding.UTF8.GetBytes(command));
this.parentHook.Memory.Asm.Clear();
string[] asm = new string[] { "call " + u1, "mov ecx, eax", "push -1", "mov edx, " + addr, "push edx", "call " + u2, "retn" };
str = Encoding.UTF8.GetString(this.parentHook.InjectAndExecute(asm, 0x400));
int index = str.IndexOf("\0");
str = str.Substring(0, index);
this.parentHook.Memory.FreeMemory(addr);
}
return str;
}
It is from my hack, probably similar to the way PQR does.
Originally Posted by
Jadd
They probably do some stack trace on FrameScript::ExecuteBuffer and FrameScript::GetText or whatever the "GetLocalizedText" function is called now. Either that, or they're catching anyone using copy-pasta'd assembly. (The first one is more likely IMO.)
Since the asm used by PQR is filled with garbage opcodes(I confirmed this by Reflector), the only thing common between my hack and PQR is that we both called the function GetLocalizedText. So they must have done some stack trace to us.
However, I know nothing about how they did this. Is stack trace a routine check or they just randomly activate it ?