#include "A98SYS.h" bool A98SYS::attach_function() { // https://vndb.org/v6447 // Rainy Blue ~6月の雨~ auto addrs = findiatcallormov_all((DWORD)::ExtTextOutA, processStartAddress, processStartAddress, processStopAddress, PAGE_EXECUTE); if (addrs.size() != 2) return false; auto addr = addrs[1]; addr = MemDbg::findEnclosingAlignedFunction(addr); if (!addr) return false; auto addrs1 = findxref_reverse_checkcallop(addr, processStartAddress, processStopAddress, 0xe8); if (!addrs1.size()) return false; addr = addrs1[0]; addr = MemDbg::findEnclosingAlignedFunction(addr); if (!addr) return false; HookParam hp; hp.address = addr; hp.offset = get_stack(1); hp.type = USING_STRING | EMBED_ABLE | EMBED_AFTER_NEW | EMBED_BEFORE_SIMPLE | EMBED_DYNA_SJIS; hp.hook_font = F_ExtTextOutA; return NewHook(hp, "A98SYS"); }