Merge remote-tracking branch 'Blu3train/CatSystem2Hook'

This commit is contained in:
Chenx221 2024-09-05 11:52:24 +08:00
commit 2ef06204e6
3 changed files with 41 additions and 2 deletions

View File

@ -7262,6 +7262,45 @@ bool InsertCatSystemHook()
return true;
}
bool InsertCatSystem2Hook()
{
//by Blu3train
/*
* Sample games:
* https://vndb.org/v26987
*/
const BYTE bytes[] = {
0x38, 0x08, // cmp [eax],cl
0x0F, 0x84, XX4, // je cs2.exe+23E490
0x66, 0x66, 0x0F, 0x1F, 0x84, 0x00, XX4, // nop word ptr [eax+eax+00000000]
0x4F, // dec edi
0xC7, 0x85, XX4, XX4, // mov [ebp-000005A0],00000000
0x33, 0xF6, // xor esi,esi
0xC7, 0x85, XX4, XX4, // mov [ebp-0000057C],00000000
0x85, 0xFF // test edi,edi
};
ULONG range = min(processStopAddress - processStartAddress, MAX_REL_ADDR);
ULONG addr = MemDbg::findBytes(bytes, sizeof(bytes), processStartAddress, processStartAddress + range);
if (!addr) {
ConsoleOutput("vnreng:CatSystem2new: pattern not found");
return false;
}
HookParam hp = {};
hp.address = addr;
hp.offset = pusha_eax_off -4;
hp.index = 0;
hp.codepage = 65001;
hp.type = USING_STRING;
ConsoleOutput("vnreng: INSERT CatSystem2new");
NewHook(hp, "CatSystem2new");
return true;
}
bool InsertCatSystemHooks()
{return InsertCatSystemHook() || InsertCatSystem2Hook();}
bool InsertNitroplusHook()
{
const BYTE bytes[] = {0xb0, 0x74, 0x53};

View File

@ -93,7 +93,7 @@ bool InsertBootupHook(); // Bootup: Bootup.dat
bool InsertC4Hook(); // C4: C4.EXE or XEX.EXE
bool InsertCaramelBoxHook(); // Caramel: *.bin
bool InsertCandyHook(); // SystemC@CandySoft: *.fpk
bool InsertCatSystemHook(); // CatSystem2: *.int
bool InsertCatSystemHooks(); // CatSystem2: *.int
bool InsertCMVSHook(); // CMVS: data/pack/*.cpz; do not support the latest cmvs32.exe and cmvs64.exe
bool InsertCotophaHook(); // Cotopha: *.noa
bool InsertDebonosuHook(); // Debonosu: bmp.bak and dsetup.dll

View File

@ -193,7 +193,7 @@ bool DetermineEngineByFile1()
InsertArtemisHook();
return true;
}
if (Util::CheckFile(L"*.int") && InsertCatSystemHook()) {
if (Util::CheckFile(L"*.int") && InsertCatSystemHooks()) {
return true;
}
if (Util::CheckFile(L"message.dat")) {