OldSchoolHack

Registrieren / Anmelden Deutsch

Unendlich Itmes - Mal wieder Altitude

icon Thema: Unendlich Itmes - Mal wieder Altitude

Anmeldungsdatum: Nov 2011

Beiträge: 65

Wow, vieeelen Dank! Habe mir gerade nochmal andere Beiträge von dir hier im Forum angeguckt und verstehe nun das Prinzip von den Pattern.

Das fertig zusammengesetzte Programm würde so aussehen:
CPP Code:
  1. #include <iostream>
  2. #include <windows.h>
  3.  
  4. using namespace std;
  5.  
  6. bool bDataCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)
  7. {
  8. for(;*szMask;++szMask,++pData,++bMask)
  9. {
  10. if(*szMask=='x' && *pData!=*bMask )
  11. {
  12. return false;
  13. }
  14. }
  15. return (*szMask) == NULL;
  16. }
  17.  
  18. DWORD FindPattern(DWORD dwAddress,DWORD dwLen,BYTE *bMask,char * szMask)
  19. {
  20. for(DWORD i=0; i < dwLen; i++)
  21. {
  22. if( bDataCompare( (BYTE*)( dwAddress+i ),bMask,szMask) )
  23. {
  24. return (DWORD)(dwAddress+i);
  25. }
  26. }
  27. return 0;
  28. }
  29.  
  30.  
  31. int main(int argc, char *argv[])
  32. {
  33. HMODULE StartAdresse;
  34. int Size;
  35. DWORD Adress;
  36.  
  37. StartAdresse = GetModuleHandle("altitude.exe");
  38. Size = 1212416;
  39. Adress = FindPattern((DWORD) StartAdresse, (DWORD) Size, (PBYTE) "\x8B\xCE\x90\x90\x90\xE8\x00\x00\x00\x00\x8B\x4C\x24\x00\x8B\xB1\x00\x00\x00\x00\x83\xFE\x00\x0F\x84\x00\x00\x00\x00\x8B\xB1", "xxxxxx????xxx?xx????xxxxx????xx");
  40. Adress += 21;
  41.  
  42. cout << Adress << endl;
  43.  
  44. system("PAUSE");
  45. return EXIT_SUCCESS;
  46. }

Jetzt habe ich noch die Frage, ob das so stimmt?
Als Adresse bekomme ich den wert 445617 raus. Und jetzt kommt wahrscheinlich die dümmste Frage...was fange ich mit der an? Das ist ja ein Offset von einer bestimmten Adresse, oder?