Sorry, das ihr euch mit so einem Noob rumschlagen müsst, aber ich möchte das gerne wissen/draufkriegen - das kann doch nicht so schwer sein...? Ich danke euch, das ihr mir bis jetzt so geduldig geholfen habt und ich hoffe, das ihr mir jetzt auch noch zur Seite stehen könnt/wollt. Denn ich möchte gerne auf das obige explizit eingehen.
Leider bin ich noch nicht so weit, das oben stehende zu kapieren, wie ich gerade feststelle :(
Und ich glaube, dort liegt mein Hauptproblem. Deswegen "schreie" ich ja immer nach einer Step-by-Step-Anleitung
Also, ich weiß, wie ich Adressen/Werte finde und ich weiß auch (theoretisch - wenn ich es denn mal hinbekomme und das Spiel nicht abstürzt), wie ich Pointer finde.
Aber da hört es dann auf. Mir fehlt einfach das Wissen/Verständnis um von meiner ermittelten Adresse/Pointer zur Code Injection/Codecave zu kommen.
Daher zerflücke ich jetzt einfach mal deine Codes um für mich persönlich die ganze Sache zu verstehen...
Also dies hier:
|
ist mir soweit klar, das bekomme ich ja, wenn ich den gefunden Wert/die Adresse (nicht den Pointer!) doppelt anklicke, bzw. mir das als Hexadezimalwert(e) anzeigen lasse. Das habe ich auch schon mal trainingshalber gemacht. Soweit eigentlich klar.
Aber was hat es hiermit auf sich:
|
Wo steht das, wie komme ich da ran und vor allem: was genau bedeutet das?
Zweitens, was ist das:
|
?
Der erste Teil ist bekannt, den hab ich ja oben schon stehen.
Aber woher kommt das E9 F88F1400? Und was bedeutet das?
Wieso komme ich von Anfangs F3 0F11 46 40 auf E9 F88F1400?
Drittens:
Das folgende erkläre ich mir so, das dies der Sprungbefehl (daher wohl das "jmp") zu Zeile/Programmcode XXX ist, damit der Pointer/die Code Injection greift, richtig?
|
Also der Sprung auf die Adresse, die bspw. die Munition bei Benutzung abzieht.
Ist das die +5593ED? Das heißt, das ist die wahre Adresse, auf der bspw. der Munitionswert angegeben ist, oder? Diese Adresse bekomme ich ja raus, wenn ich nach Pointer suche, stimmts?
Viertens (ich hab da zur Übersicht mal Ziffern davorgesetzt):
Das ist doch jetzt sozusagen die von dir geschriebene "Umleitung", die dem Originalcode sagt, er soll statt dem eigentlichen Wert XXX nun den Wert XYX nehmen / oder den Originalcode einfrieren. Richtig soweit?
Aber warum sind die obigen Werte jetzt auf einmal ganz anders?
[code=ASM]1. JustCause2.exe+5593ED - F3 0F10 46 44 - movss xmm0,[esi+44]
2. JustCause2.exe+5593F2 - F3 0F11 46 40 - movss [esi+40],xmm0
3. JustCause2.exe+5593F7 - E9 F96FEBFF - jmp JustCause2.exe+4103F5
4. JustCause2.exe+5593FC - 90 - nop[/code]
Zu 1.:
- Die +5593ED ist ja die richtige Adresse, von der die Muni abgezogen wird, stimmts?
- Wo kommt denn der Wert F3 0F10 46 44 unter 1. her? Der tauchte hier noch gar nicht auf...?
- die beiden "44" gehören zusammen, bzw. müssen bei diesem Vorgang gleich sein, richtig? (F3 0F10 46 44 - movss xmm0,[esi+44])
Zu 2.:
- Was ist dies für eine Adresse: +5593F7? Oder ist das nur die "Zeilennummer" in dem entsprechenden Abschnitt?
- Warum taucht mein zu allererst gefundener Wert denn erst unter 2. auf?
- auch hier: die beiden "40" gehören zusammen, bzw. müssen bei diesem Vorgang gleich sein, richtig? (F3 0F11 46 40 - movss [esi+40],xmm0)
Zu 3.:
- Woher kommt die Adresse: +5593F7? (Gleiche Frage wie oben)
- Und woher kommt die Adresse E9 F96FEBFF, die dann auf den "Jump"-Befehl - jmp JustCause2.exe+4103F5 verweisen soll, bwz. wo kommt plötzlich die +4103F5 her? Wie ermittele ich die? Ist das auch nur eine "Zeilennummer"?
zu 4.:
Ok, das sagt mir nun gar nichts mehr. Woher stammt die +5593FC und was bedeuted " - 90 - nop"? Vermutlich ist damit die "Umleitung" innerhalb des Programmcodes beendet?
Puh, ich stelle gerade fest, das ich ein ziemlicher Nerv-B00n bin... :-/
Mag sein, das mein Anspruch an mich selbst zu hoch ist, aber das ist doch erlernbar...? Ich glaube, wenn einer von euch mir das bis in die kleinste Zahl zerlegen und erklären kann, dann würde ich das begreifen und auch mal was an euch zurückgeben können...
Natürlich könnt ihr auch jetzt aussteigen und mir sagen, ich bin ein hoffnungsloser Fall, weil ich nicht mal das kleinste Quentchen bis jetzt verstanden habe. Dann wäre das aber auch ok, dann akzeptiere ich das. :exclamation:
Das ist wirklich eine Menge Stoff zum lernen.