In Step 7 lernen wir die "Code Injection"mit der wir eigenen Code mit vorhandenem austauschen
und so das Spiel manipulieren können :-)
Wir haben Energie von 100
und wenn wir auf "Hit me" klicken, verringert sich der Wert um 1.
Unser Ziel ist es nun bei einem klick auf "Hit me" den Wert um 2 zu erhöhen.

Wie immer suchen wir uns erst unseren Wert... in diesem Fall die 100.

In der "Tutorial.exe" klicken wir auf "Hit me" um die Energie um 1 zu verringern.

Nun suchen wir nach der 99 und es bleibt genau eine Adresse übrig und finden somit den richtigen Wert.
Diese wird gleich mit einem Doppelklick nach unten befördert.

Wie geht es nun weiter?
Wir machen einen Rechtsklick auf die Adresse und wählen
"Find out what writes to this address" um herauszufinden was in diese Adresse schreibt.

Den Bestätigungsdialog bestätigen wir mit "Yes"

Ein leeres Fenster öffnet sich wieder.

Wir klicken in der "Tutorial.exe" wieder auf "Hit me"...

...und es erscheint ein Eintrag.
Der Eintrag bedeutet, dass in der Adresse "10002B5A9" eine Instruktion stattfindet... und zwar
"dec [rbx+00000748]"
"dec = decrement = verringerung... und das immer von 1"
und das ganze passiert in der Adresse "[rbx+00000748]"
Um diese Instruktion zu ändern, müssen wir ihn überschreiben... dazu klicken wir zunächst rechts auf "Show disassembler"

Im "Memory Viewer" sind wir nun zu der richtigen Adresse gesprungen.

Wir machen einen Rechtsklick auf den Eintrag und wählen "Auto Assemble" oder drücken einfach "STRG+A"

Ein leeres "Auto Assemble" Fenster öffnet sich.

Wir klicken im Menü auf "Template" und wählen "Code injection"...

...und bestätigen die Ziel Adresse.

Wir haben nun eine einfache Vorlage... wie gehen wir das Problem nun an?

In dem Bereich "newmem:" können wir nun unseren eigenen Code schreiben.
Wir müssen unseren Wert
also erhöhen, deshalb benutzen wir statt "dec"
"add", damit wir unseren Wert um eine Zahl unserer Wahl erhöhen können.
Dazu müssten wir jetzt eigentlich "add [rbx+00000748],2" schreiben... da aber der Originalcode danach auch noch ausgeführt wird,
und dieser den Wert wieder um 1 verringert, müssen wir "add [rbx+00000748],3" schreiben...

Wir können aber auch einfach den Originalcode ausklammern, damit er nicht ausgeführt wird,
somit reicht es, wenn wir den Wert nur um 2 erhöhen.
Sind wir fertig, klicken wir unten auf "Execute".

Bestätigen mit "Yes"

Unser "Code injection" war erfolgreich :-)

Im "Memory Viewer" sehen wir nun, dass der Opcode geändert wurde.
Bei der Adresse "10002B5A9" verringert er hier nun keinen Wert mehr.
Er springt jetzt "jmp = sprung" zu der Adresse "FFFF0000"
Dies ist unser "Code Cave"
Machen wir einen Rechtsklick auf der Zeile und wählen "Follow"...

Springen wir zu unserem "Code Cave" in Adresse "FFFF0000".
Hier wird nun unser Code verarbeitet und danach springt er wieder zurück zur eigentlichen Stelle...
...als ob nie was passiert wäre
:-)

So, nun testen wir mal ob unser Code auch in der Praxis funktioniert und klicken in der "Tutorial.exe" auf "Hit me"
Der Wert sollte sich jetzt um 2 erhöhen und der "Next" Button sollte erscheinen.

Gefällt dir diese Seite?
Abonniere mich, Like mich, Teile mich :-)