OldSchoolHack

Register / Login English

[c++] D3D-hooking

icon Thread: [c++] D3D-hooking

Join Date: Mar 2011

Posts: 127

User-Rating:

1 positive
0 negative
hi,
ich versuche mich grade ma am D3D-Hooking. Ich versuche die Endscene zu hooken. habe mir ein paar tuts angeschaut und in denen als folgenden Code gesehen:
CPP Code:
  1.  
  2. int (__stdcall* EndScene_t)(LPDIRECT3DDEVICE9);
  3. int __stdcall MyEndScene(LPDIRECT3DDEVICE9);
  4. bool bDataCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)
  5. {
  6. for(;*szMask;++szMask,++pData,++bMask)
  7. if(*szMask=='x' && *pData!=*bMask )
  8. return false;
  9. return (*szMask) == NULL;
  10. }
  11. DWORD dwFindPattern(DWORD dwAddress,DWORD dwLen,BYTE *bMask,char * szMask)
  12. {
  13. for(DWORD i=0; i < dwLen; i++)
  14. {
  15. if( bDataCompare( (BYTE*)( dwAddress+i ),bMask,szMask) )
  16. return (DWORD)(dwAddress+i);
  17. }
  18. return 0;
  19. }
  20. void hookd3d()
  21. {
  22. HMODULE hModule = NULL;
  23. while(!hModule)
  24. {
  25. hModule = GetModuleHandleA("d3d9.dll") ;
  26. Sleep(100) ;
  27. }
  28.  
  29. DWORD* vmt = 0 ;
  30. DWORD FoundPattern = dwFindPattern((DWORD)hModule,0x128000,(PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x00\x00\x89\x86","xx????xx????xx") ;
  31.  
  32. vmt = (DWORD*)(FoundPattern+2); // &vmt[42] enthält die Addy der EndScene-Funktion
  33. DetourFunction((PBYTE)&vmt[42],(PBYTE)MyEndScene);
  34. }
Also der wert von &vmt[42] scheint in ordnung zu sein. jedoch wird MyEndScene nicht gecallt. Wäre schön wen ihr mir helfen könntet