Hallo,
und zwar möchte ich für ein Spiel einen Packet Logger schreiben.
Jedenfalls hab ich nun ein Problem.
Die Werte werden vor dem Aufruf in's Register geschrieben. (ganz normal eben)
Dann greift meine Funktion per detour ein und überschreibt natürlich jetzt wieder den kompletten Register.
Jetzt springt die Funktion wieder zur Ur-Funktion, allerdings mit den falschen Werten im Register. (D.h. -> Crash).
So, jetzt hab ich versucht bevor meine Funktion aufgerufen wird per inline asm die Register Werte in eine Codecave zu schreiben und nach dem meine Funktion ausgeführt wurde (also vor dem jump zur Ur-Funktion) das ganze wieder per inline asm reinzuschreiben.
Gibt es keine einfacherere Lösung? (Die Werte haben keinen Basepointer, schon versucht... :/ )
Vorallem crasht der Scheiss und klappt noch nicht so ganz (Register Werte bringens zum crashen - habs schon im debugger angeschaut)
Problem ist nur bei pushad und popad, dass man dann nicht mehr richtig auf die parameter zugreifen kann, wenn es sich nicht gerade um ne __stdcall Funktion handelt
Was soll das denn werden wenn's fertig ist? Du schreibst das pushad etc. in die Funktion die du detouren willst. Auch verstehe ich dein Problem nicht ganz, wenn du in deine Funktion callst/jumpst verändern sich die Register überhaupt nicht (von der Return Adresse auf dem Stack beim Call mal abgesehen).
Mach den detour ganz normal das heisst, einfach nur ein
Jump zu deiner Funktion. In deiner Funktion machst du dann als
erstes pushad und pushfd. Wenn du dann fertig bist,
popfd und popad und dann der Sprung zurück.
Mach den detour ganz normal das heisst, einfach nur ein
Jump zu deiner Funktion. In deiner Funktion machst du dann als
erstes pushad und pushfd. Wenn du dann fertig bist,
popfd und popad und dann der Sprung zurück.
Das funktioniert.
Aber sobald ich irgendetwas richtung c++ in meine funktion mach, funktionierts nichtmehr.
Das funktioniert.
Aber sobald ich irgendetwas richtung c++ in meine funktion mach, funktionierts nichtmehr.
Das dürfte daran liegen, dass pushad und pushfd wie Smith schon gesagt hat den Stack "durcheinanderbringen", also dass die Parameter sich nicht da im Stack befinden wo sie erwartet werden. Außerdem solltest du ESP in EBP laden, damit lokale Variablen benutzt werden können.
Desweiteren würde ich dir empfehlen bei solchen Problemen einen Debugger
wie Olly zu benutzen und das ganze einfach mal zu steppen um zu sehen was da falsch läuft.
ip adressen 07/01/2010 - WarRock - 14 Replies hi ich suche mal ein paar ip adressen also wen ihr welche kennt nennt sie mir bitte
[HELP] Detour connections Client 5250. 06/29/2010 - CO2 Private Server - 18 Replies Okay, so I want the client to connect to any IP I want. I can't edit the server.dat, it's encrypted. (Do not send me DatCryptor, I know this isn't working.) I've tried Nullable's ConquerLoader as well, but it simply freezes the client, it's very strange.
So does anyone have a solution?
Its Client patch 5250.
Adressen? 05/05/2010 - S4 League - 6 Replies Kann mir einer die derzeitigen adressen von:
-Dmg(Critical)
-PushBack
-FumbiSize
-CaracterSize
-CutSpeed
Wen ihr eine oder mehrere adrssen habt bitte an mich per pn(plz)
Ich danke schon mal im vorhaus.
[ C++ / Reversing | Tutorial ] Detour + Code Cave mit WPM 01/03/2010 - Coding Tutorials - 4 Replies Moin leute, habe hier ein kleines Tutorial geschrieben wie man Funktionen auf seinen eigenen Code umleitet mit WriteProcessMemory. Ihr solltet jedoch schon wissen wie man WriteProcessMemory verwendet. Als Beispiel habe ich das Spiel Counterstrike
genommen und Whitewalls gemacht. Das Tutorial ist NICHT dazu da um zu zeigen
wie man Hacks schreibt und wie diese Funktionieren.
Programme die benutzt werden:
OllyDBG
Credits für den White Walls code:
b2k5
adressen 12/11/2007 - WarRock - 1 Replies so hab ma die addies gefunden:
o Recoil: 00AE4A70 (freeze at 0)
No Spread: 00AE4A68 (Freeze at 0)
Stamina: 008E2AFC (freeze at 1120403456)
Instant Spawn: 00D1A110 and 0103012C (freeze both to 0)
Scope: 00AE4A26 (set to 0)