OldSchoolHack

Register / Login English

Offsets der VMTable finden. Wie? CS:S

icon Thread: Offsets der VMTable finden. Wie? CS:S

Join Date: Feb 2011

Posts: 5

Hallo,

ich probiere mich derzeit an einem basehook.
nun möchte ich jedoch die "createmove" funktion hooken, was sich als äußerst kompliziert darstellt, da mir der benötigte offset fehlt.

hier wäre der teil der mich wahnsinnig macht:
CPP Code:
  1.  
  2. if(VirtualProtect((LPVOID)((DWORD)pdwClientVMT + 0x24/*0x24*/), 4, PAGE_EXECUTE_READWRITE, &dwOldProtect)) // (DWORD)pdwPanelVMT + 36
  3. {
  4. GLogSystem.AddToLogFileA( "Basehook2011.log", "test1", buffer);
  5. g_dwOrgHudUpdate = pdwClientVMT[9]; // 9. Stelle im Array / 10. in der Headerdatei ! Geknackt yes!!! :)
  6. GLogSystem.AddToLogFileA( "Basehook2011.log", "test2", buffer);
  7. pdwClientVMT[9] = (DWORD)&new_HudUpdate;
  8. GLogSystem.AddToLogFileA( "Basehook2011.log", "test3", buffer);
  9. VirtualProtect((LPVOID)((DWORD)pdwClientVMT + 0x24 // hier müsste ein anderer offset (genau wie oben auch) hin soweit ich mich nicht irre nur wie komme ich daran?/*0x24*/), 4, dwOldProtect, &dwOldProtect);
  10. GLogSystem.AddToLogFileA( "Basehook2011.log", "test4", buffer);
  11. }
  12.  

In der logdatei finde ich auch jeweils test1-4 wieder, aber sobald ich auf einen server connecte stürzt das spiel ab

die funktion selbst sieht so aus:

CPP Code:
  1.  
  2. void __stdcall new_HudUpdate(bool bActive)
  3. {
  4. _asm
  5. {
  6. PUSH bActive
  7. CALL g_dwOrgHudUpdate
  8. }
  9.  
  10. g_pClient->HudUpdate(bActive);
  11.  
  12. GLogSystem.AddToLogFileA( "Basehook2011.log", ">>>HudUpdate EXECUTED!<<<" );
  13. }
  14.  
  15. In der logdatei selbst steht nachdem der readfehler bzw. speicherfehler auftritt trotzdem das "HudUpdate EXECUTED" ... also demnach wird die funktion zumindest zu ende ausgeführt, auch wenn das spiel dann abstürzt
  16.  


vielen dank für eure hilfe im vorraus

zw3rgy