#include"Ages3ResT.h" bool Ages3ResTHook() { const BYTE bytes[] = { 0x8d,0x4f,XX, 0xff,0x15,XX4, XX, 0x8d,0x8f,XX4, 0xff,0x15,XX4, 0x8d,XX,XX4, XX, 0x8d,0x8f,XX4, 0xff,0x15,XX4, 0x8b,XX, 0xff,0x15,XX4, }; auto addrs = Util::SearchMemory(bytes, sizeof(bytes), PAGE_EXECUTE, processStartAddress, processStopAddress); bool succ=false; for (auto addr : addrs) { ConsoleOutput("Ages3ResT %p", addr); if (addr == 0)return false; addr = findfuncstart(addr); ConsoleOutput("Ages3ResT %p", addr); if (addr == 0)return false; HookParam hp; hp.address = addr; hp.offset=get_stack(3); hp.type = CODEC_UTF16 | USING_STRING; succ|=NewHook(hp, "Ages3ResT"); } return succ; } bool Ages3ResT::attach_function() { return Ages3ResTHook(); }