Step 7

Code Injection

 

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.

Step07_01

 

 

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

Step07_02

 

 

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

Step07_03

 

 

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.

Step07_04

 

 

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.

Step07_05

 

 

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

Step07_06

 

 

Ein leeres Fenster öffnet sich wieder.

Step07_07

 

 

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

Step07_08

 

 

...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"

Step07_09

 

 

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

Step07_10

 

 

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

Step07_11

 

 

Ein leeres "Auto Assemble" Fenster öffnet sich.

Step07_12

 

 

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

Step07_13

 

 

...und bestätigen die Ziel Adresse.

Step07_14

 

 

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

Step07_15

 

 

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...

Step07_16

 

 

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".

Step07_17

 

 

Bestätigen mit "Yes"

Step07_18

 

 

Unser "Code injection" war erfolgreich :-)

Step07_19

 

 

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"...

Step07_20

 

 

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 :-)

Step07_21

 

 

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.

Step07_22

 

Zurück zur Übersicht