OldSchoolHack

Register / Login English

[C++]gehookte Funktion nochmal hooken


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

Join Date: Aug 2007

Posts: 8643

User-Rating:

199 positive
33 negative
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

Join Date: Aug 2008

Posts: 2594

User-Rating:

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

Join Date: Aug 2007

Posts: 8643

User-Rating:

199 positive
33 negative
vielleicht wenn er ein Update braucht

greetz KN4CK3R

__________________

Hallo
icon #4

Join Date: Aug 2008

Posts: 2594

User-Rating:

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