OldSchoolHack

Registrieren / Anmelden Deutsch

SDK


icon SDK #1

Anmeldungsdatum: Jan 2011

Beiträge: 12

Hallo zusammen

Ich habe bisher noch nie mit der OB SDK gearbeitet. Darum frage ich hier mal, ob jemand eine Empfehlung hat, wie ich am besten einsteige. Was ich bereits geschafft habe, ist die Console in CSS zu hooken, so dass ich nun mit ConMsg() bzw. ConColorMsg() Texte in der Console ausgeben kann. Wie gehe ich nun am besten weiter vor und welche Seite(n) könnten mir dabei helfen?

Greetz

icon #2

Anmeldungsdatum: Aug 2007

Beiträge: 8643

Benutzer-Bewertung:

199 positiv
33 negativ
schau dir den basehook von s0beit an. der sollte dir weiterhelfen

greetz KN4CK3R

__________________

Hallo
icon #3

Anmeldungsdatum: Jan 2011

Beiträge: 12

Für die includes + Interfaces war es auf jeden Fall hilfreich. Ich versuche nun wie er Init(), HudUpdate() und CreateMove() zu hooken und habe mir dazu den index in der ClientBase VTable rausgesucht.

Init: 0,
HudUpdate: 11,
CreateMove: 21

Mein HudUpdate hook functioniert problemlos. Bei meinem Init hook crasht das Game beim aufruf der Original-Funktion.

Im Header:
CPP Code:
  1. int ( __stdcall *oInit )( CreateInterfaceFn, CreateInterfaceFn, CGlobalVarsBase* );

Hook:
CPP Code:
  1. oInit = (int ( __stdcall* )( CreateInterfaceFn, CreateInterfaceFn, CGlobalVarsBase* ) )HookVFunc(*(DWORD**)g_pClient, 0,( DWORD* ) &hkInit );

Gehookte Funktion:
CPP Code:
  1. int hkInit( CreateInterfaceFn appSystemFactory, CreateInterfaceFn physicsFactory, CGlobalVarsBase *pGlobals )
  2. {
  3. return oInit( appSystemFactory, physicsFactory, pGlobals ); //<-- crash
  4. }

Hier noch die HookVFunc:
CPP Code:
  1. DWORD *HookVFunc( DWORD *vtable, int index, DWORD *newFunction )
  2. {
  3. DWORD dwOldProt, *oldFunc;
  4. VirtualProtect(&vtable[index], 4, PAGE_EXECUTE_READWRITE, &dwOldProt);
  5. oldFunc = (DWORD*)vtable[index];
  6. vtable[index] = (DWORD)newFunction;
  7. VirtualProtect(&vtable[index], 4, dwOldProt, &dwOldProt);
  8. return oldFunc;
  9. }

Hat irgend jmd. eine Idee, was der Grund dafür sein kann?

EDIT:
Habs jetzt zum laufen gebracht ^^
btw. habe den code oben gefixxt, ist zwar totaler Müll und VAC dt, da in den .rdata Bereich geschrieben wird(s. HookVFunc), aber wenn wer freude daran hat, darf er ihn natürlich gerne verwenden