Seçkin Üye
PHP:
bool bCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)
{
for (; *szMask; ++szMask, ++pData, ++bMask)
if (*szMask == 'x' && *pData != *bMask)
return 0;
return (*szMask) == NULL;
}
DWORD FindPattern(DWORD dwAddress, DWORD dwLen, BYTE *bMask, char * szMask)
{
for (DWORD i = 0; i<dwLen; i++)
if (bCompare((BYTE*)(dwAddress + i), bMask, szMask))
return (DWORD)(dwAddress + i);
return 0;
}
int HookD3D(void)
{
DWORD adr;
DWORD hD3D;
DWORD *vTable;
hD3D = (DWORD)GetModuleHandleA("d3d9.dll");
adr = FindPattern(hD3D, 0x128000, (PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x00\x00\x89\x86", "xx????xx????xx");
memcpy(&vTable, (void *)(adr + 2), 4);
Sleep(250);
if (hD3D)
{
oReset = (tReset)DetourCreate((PBYTE)vTable[16], (PBYTE)&hkReset, 5);
oPresent = (tPresent)DetourCreate((PBYTE)vTable[17], (PBYTE)&hkPresent, 5);
}
return 0;
}
BOOL WINAPI DllMain(HMODULE hModule, DWORD dwReason, LPVOID lpReserved)
{
switch (dwReason)
{
case DLL_PROCESS_ATTACH:
HookD3D();
break;
}
return true;
}
Basemde Yukarıdaki Hook Kodlarını Kullanıyorum Fakat Artık Oyun Çalışmayı Durdurma Hatası Vermeye Başladı.
adr = FindPattern(hD3D, 0x128000, (PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x00\x00\x89\x86", "xx????xx????xx");
0x128000'lü olan Yer Veya Ondan Sonraki Array Fix Olabilir Mi ?
Bunlar Fix İse Güncelini Vere Bilecek Var Mı ?
Moderatörün son düzenlenenleri: