OldSchoolHack

Registrieren / Anmelden Deutsch

[C++]gehookte Funktion nochmal hooken


icon [C++]gehookte Funktion nochmal hooken #1

Anmeldungsdatum: Aug 2007

Beiträge: 8643

Benutzer-Bewertung:

199 positiv
33 negativ
Hallo,

wer schonmal versucht hat eine gehookte Funktion nochmal zu hooken, der weiß, das crasht. Problematisch wird das ganze, wenn man die Funktion unbedingt braucht, so brauche ich z.B. die Funktionen GetCursorPos und SetCursorPos für mein Ingame GUI. Normalerweise ist das kein Problem, aber xFire oder das STEAM Overlay hooken die Funktionen auch. Wenn man versucht die dann nochmal zu hooken, stürzt das Programm ab, weil die Sprungadresse des alten Hooks in eurem "Backup" nicht mehr funktioniert. Deswegen habe ich heute eine neue Funktion geschrieben, mit der man auch gehookte Funktionen nochmal hooken kann. Dazu wird einfach eine neue Sprungadresse für den alten Hook berechnet und dann eingebaut. Damit läufts dann.

TEXT Code:
  1. void *SafeDetourFunc(BYTE *src, const BYTE *dst, const int len)
  2. {
  3. BYTE *jmp;
  4. DWORD dwback;
  5. DWORD jumpto, newjump;
  6.  
  7. VirtualProtect(src,len,PAGE_READWRITE,&dwback);
  8.  
  9. if(src[0] == 0xE9)
  10. {
  11. jmp = (BYTE*)malloc(10);
  12. jumpto = (*(DWORD*)(src+1))+((DWORD)src)+5;
  13. newjump = (jumpto-(DWORD)(jmp+5));
  14. jmp[0] = 0xE9;
  15. *(DWORD*)(jmp+1) = newjump;
  16. jmp += 5;
  17. jmp[0] = 0xE9;
  18. *(DWORD*)(jmp+1) = (DWORD)(src-jmp);
  19. }
  20. else
  21. {
  22. jmp = (BYTE*)malloc(5+len);
  23. memcpy(jmp,src,len);
  24. jmp += len;
  25. jmp[0] = 0xE9;
  26. *(DWORD*)(jmp+1) = (DWORD)(src+len-jmp)-5;
  27. }
  28.  
  29. src[0] = 0xE9;
  30. *(DWORD*)(src+1) = (DWORD)(dst - src) - 5;
  31.  
  32. for(int i = 5; i < len; i++)
  33. src[i] = 0x90;
  34.  
  35. VirtualProtect(src,len,dwback,&dwback);
  36.  
  37. return (jmp-len);
  38. }

Viel Spaß mit eurem MausGUI.

greetz KN4CK3R

__________________

Hallo
icon #2

Anmeldungsdatum: Aug 2008

Beiträge: 2594

Benutzer-Bewertung:

17 positiv
5 negativ
Nice, kannst du so was in osh einbauen? Dann kann man 2 hacks gleichzeitig benutzen, zumidenstens für menü.
icon #3

Anmeldungsdatum: Aug 2007

Beiträge: 8643

Benutzer-Bewertung:

199 positiv
33 negativ
vielleicht wenn er ein Update braucht

greetz KN4CK3R

__________________

Hallo
icon #4

Anmeldungsdatum: Aug 2008

Beiträge: 2594

Benutzer-Bewertung:

17 positiv
5 negativ
Er braucht ein update.^^
pure bypass fehlt und radar ist zu klein.^^