#include"VitaminSoft.h" namespace{ bool _1(){ //どうして?いじってプリンセスFinalRoad~もう!またこんなところで3~ auto entry=Util::FindImportEntry(processStartAddress,(DWORD)ExtTextOutA); if(entry==0)return false; BYTE bytes[]={0xFF,0x15,XX4}; memcpy(bytes+2,&entry,4); bool ok=false; for(auto addr:Util::SearchMemory(bytes, sizeof(bytes), PAGE_EXECUTE, processStartAddress, processStopAddress)){ addr = MemDbg::findEnclosingAlignedFunction(addr); if (!addr) continue; HookParam hp; hp.address = addr; hp.offset=get_stack(3); hp.type = DATA_INDIRECT; hp.index = 0; ok|=NewHook(hp, "VitaminSoft"); } return ok; } bool _2(){ //ねとって女神 //ねとって女神 NEO auto entry=Util::FindImportEntry(processStartAddress,(DWORD)TextOutA); if(entry==0)return false; BYTE bytes[]={0xFF,0x15,XX4}; memcpy(bytes+2,&entry,4); bool ok=false; for(auto addr:Util::SearchMemory(bytes, sizeof(bytes), PAGE_EXECUTE, processStartAddress, processStopAddress)){ addr = MemDbg::findEnclosingAlignedFunction(addr); if (!addr) continue; HookParam hp; hp.address = addr; hp.offset=get_stack(1); hp.type = USING_STRING; ok|=NewHook(hp, "VitaminSoft"); } return ok; } } bool VitaminSoft::attach_function(){ return _2()||_1(); }