This commit is contained in:
恍兮惚兮 2024-03-21 01:09:59 +08:00
parent 2fa1f50aed
commit 5e6bc37051
3 changed files with 40 additions and 1 deletions

View File

@ -1696,4 +1696,22 @@ bool WillPlus::attach_function() {
succ|=_xxx(); succ|=_xxx();
return succ; return succ;
}
bool Willold::attach_function() {
//https://vndb.org/v17755
//凌辱鬼
auto addr=MemDbg::findLongJumpAddress((ULONG)TextOutA,processStartAddress,processStopAddress);
if(addr==0)return false;
addr=MemDbg::findNearCallAddress(addr,processStartAddress,processStopAddress);
if(addr==0)return false;
addr=findfuncstart(addr,0x200);
if(addr==0)return false;
HookParam hp;
hp.address=addr;
hp.type=USING_CHAR|CODEC_ANSI_BE;
hp.offset=get_stack(1);
return NewHook(hp,"will");
} }

View File

@ -8,4 +8,24 @@ class WillPlus:public ENGINE{
check_by_target=check_by_list{L"Rio.arc",L"Chip*.arc"}; check_by_target=check_by_list{L"Rio.arc",L"Chip*.arc"};
}; };
bool attach_function(); bool attach_function();
};
class Willold:public ENGINE{
public:
Willold(){
//https://vndb.org/v17755
//凌辱鬼
check_by=CHECK_BY::CUSTOM;
check_by_target=[](){
auto _={L"*.BIN",L"DATA\\*.ENV",L"DATA\\*.WBP"};
auto checkfile= std::all_of(_.begin(),_.end(),Util::CheckFile);
if(checkfile){
auto __=R"(Software\WILL\)";
checkfile&=!!MemDbg::findBytes(__,strlen(__),processStartAddress,processStopAddress);
}
return checkfile;
};
}
bool attach_function();
}; };

View File

@ -302,7 +302,8 @@ std::vector<ENGINE*> check_engines(){
new ScrPlayer, new ScrPlayer,
new ElfFunClubFinal, new ElfFunClubFinal,
new Aksys, new Aksys,
new Siglusold new Siglusold,
new Willold
}; };
} }