|
typedef HANDLE(__stdcall* CreateMutexWFn)(LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCWSTR lpName);
HANDLE __stdcall hookCreateMutexW(LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCWSTR lpName) {
CreateMutexWFn fn = *(CreateMutexWFn*)0x0155A1A4;
return fn(lpMutexAttributes, bInitialOwner, NULL);
}
#ifdef EN_MULTI_PROC
//支持双开
writeCallCode((LPVOID*)0x0112D97E, (PVOID)hookCreateMutexW);
*(BYTE*)0x0112D983 = 0x90;
writeCallCode((LPVOID*)0x00706872, (PVOID)hookCreateMutexW);
*(BYTE*)0x00706877 = 0x90;
*(BYTE*)0x0116D0DC = 0xEB;
#endif // EN_MULTI_PROC
0112D97E FF15 A4A15501 call dword ptr ds:[0x155A1A4] ; 多开call处理1 原型地址0112D97E
00706872 FF15 A4A15501 call dword ptr ds:[0x155A1A4] ; 多开call处理2 原型地址00706872
|
|