OldSchoolHack

Register / Login English

IDA Pro - D3D9.DLL - Problem

icon Thread: IDA Pro - D3D9.DLL - Problem

Join Date: Aug 2008

Posts: 2594

User-Rating:

17 positive
5 negative
Nimm doch einfach die FindPattern function, wirst du danach eh brauchen.

FindPattern by Gorden:
CPP Code:
  1. bool bDataCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)
  2. {
  3. for(;*szMask;++szMask,++pData,++bMask)
  4. if(*szMask=='x' && *pData!=*bMask )
  5. return false;
  6. return (*szMask) == NULL;
  7. }
  8.  
  9. DWORD dwFindPattern(DWORD dwAddress,DWORD dwLen,BYTE *bMask,char * szMask)
  10. {
  11. for(DWORD i=0; i < dwLen; i++)
  12. if( bDataCompare( (BYTE*)( dwAddress+i ),bMask,szMask) )
  13. return (DWORD)(dwAddress+i);
  14. return 0;
  15. }
Und so benutzt du das:
CPP Code:
  1. HMODULE hModule = NULL;
  2. while(!hModule)
  3. {
  4. hModule = GetModuleHandleA("d3d9.dll");
  5. Sleep(100);
  6. }
  7. DWORD* VTableStart = 0;
  8. DWORD FoundByGordon = dwFindPattern((DWORD)hModule, 0x128000,
  9. (PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x00\x00\x89\x86", "xx????xx????xx");
  10. memcpy(&VTableStart, (void*)(FoundByGordon+2), 4);
  11. dwDrawIndexedPrimitive = (DWORD)VTableStart[82]; // für mehr: blick in die d3d9.h werfen!
  12. dwEndScene = (DWORD)VTableStart[42];

Steht doch in dem Tutorial.