Also, ich wollte mal was nützliches und hilfreiches machen und da dachte ich sofort an ein AutoIt Tutorial. Das hier ist kein Komplettes Tutorial, da das gar nicht reinpassen würde :D aber ich habe versucht alles zum Thema Hacking und Botting mit AutoIt und ein paar Zusatzinfos hier rein zu bringen. Falls etwas wichtiges fehlt, oder Sachen unklar sind, bitte schreibt einen Post, ich bin gerne gewillt noch etwas hinzuzufügen oder zu erläutern!
Index:
1. Die Anfänge
1.1 Was kann AutoIt, was kann es nicht?
1.2 "Hello World"
1.3 Variablen
2. Mein erstes Programm
2.1 Einfache Arrays
2.2 Mehrdimensionale Arrays
2.3 (Aim)Bots
2.4 Das GUI
2.5 Koda Formdesigner
3. Andere Hacks
3.1 NomadMemory
3.2 Cheatengine und AutoIt
4. Schlusswort
--------------------------------------------------------------------------
1.1 Was kann AutoIt, was kann es nicht?
Zu allererst ist wichtig, dass man weiß, dass AutoIt nur eine Programmiersprache für Anfänger von Programming und für schnelles Botting und Hacking ist, sie wird euch bei großen Projekten wenig nützen, da sie für professionelle Entwicklung einfach zu simpel ist. Es eignet sich aber eben deshalb gut als Sprache für Einsteiger.
Man kann natürlich auch gleich mit schwereren Sprachen anfangen, aber AutoIt ist ein guter Einstieg.
1.2 "Hello World
Um euch in den Skripteditor SciTe einzuführen, werde ich mit euch zuerst ein standard "Hello World" - Programm schreiben.
Dafür werde ich eine Message Box benutzen, also ein einfaches Popup, das einen Text anzeigt.
Wie ihr seht ist das ein ziemlich einfachen Code. Das Skript wird sich nachdem die Box mit Ok bestätigt wurde einfach beenden.
Erklärung:
MsgBox der Befehl für das Anzeigen einer Message Box
0 Das ist im Moment noch unwichtig und zu kompliziert
"Test" Der erste String steht für den Titel der Box
"Hello World" Der zweite String steht für den eigentlichen Text in der Box
1.3 Variablen
Das wichtigste was man zum Anfang des Programmierens wissen muss:
Was sind Variablen?
Variablen werden für die meisten Befehle benutzt. Falls ihr euch an die Schule erinnert, da waren Variablen meistens Buchstaben, also X, Y, Z, etc.
Diese Buchstaben stehen für Zahlen, Wörter oder Ähnliches.
Das funktioniert in AutoIt und den meisten anderen Programmiersprachen genauso, allerdings kann man hier nicht nur Buchstaben benutzen, es können auch ganze Wörter oder selbst Zahlen sein.
Um Variablen in AutoIt zu deklahieren (Festzulegen, was für was sie stehen)
benutzt man das Zeichen $ vor dem Namen der Variable.
Außerdem setzt man noch Dim davor. (Muss man nicht, verhindert aber bestimmte Fehler, auf die ich jetzt nicht eingehen möchte)
Ein Beispiel:
Hier steht $Variable1 für die Zahl 10
Und $Variable2 steht für den Satz: Hello World
An dieser Stelle ist noch wichtig zu sagen, dass in AutoIt Strings, also Sätze oder Wörter IMMER mit " " umgeben sind.
2.1 Einfache Arrays
Was sind Arrays?
Arrays sind Variablen, die mehrere andere Variablen speichern.
Klingt kompliziert, ist aber eigentlich ganz simpel.
Sie werden deklahiert wie ganz normale Variablen, nur hängt man dahinter noch eine eckige Klammen an, die anzeigt wieviele Variablen der Array enthält.
Außerdem müssen wir noch Array.au3 includen, wie das geht zeige ich im Beispiel.
Hier ein Beispiel zum besseren Verständnis:
Erklärung des Codes:
#include fügt eone externe AutoIt Datei ein, mit deren Hilfe bestimmze Sachen benutzt werden können, die nicht standardmäßig in AutoIt enthalten sind
Dim $Array[3] deklahiert einen Array mit insgesamt 4 speicherbaren Werten. Aber warum nicht 3 Werte?
Im nächsten Abschnitt sieht man, das ich bei $Array[0], also bei der 0ten Variable von $Array begonnen habe, das macht insgesamt dann also 4 Variablen.
Mit dem neuen Befehl _ArrayAdd füge ich dem Array ($Array, den Wert 50) hinzu, dieser wird einfach in den frühesten, ncoh nicht belegten Platz eingefügt, in unserem Fall $Array[3]
2.2 Mehrdimensionale Arrays
Ich werde hier nicht zu sehr auf Arrays eingehen, da man als kleiner Progger überhaupt nicht alles braucht, trotzdem können mehrdimensionale Arrays hilfreich sein...
Während Eindimensionale Arrays wie Listen arbeiten,
fungieren z.B. Zweidimensionale Arrays wie Tabellen.
Sie werden ähnlich deklahiert:
Das bedeutet soviel wie eine Tabelle mit 10 Zeilen und 5 Spalten als Array, also gesamt können 50 Variablen gespeichert werden.
Es gibt auch Vieldimensionale Arrays, also Würfel als dreidimensionale Arrays oder Vierdimensionale Arrays, ohne eine definierbare Form
Also:
Der Array DArray kann demnach 500 Variablen dreidimensional speichern,
Und der Array VArray kann 2500 Variablen vierdimensional speichern.
2.3 (Aim)Bots
Nun zu einem ganz anderen Thema, das wohl der Grund ist, warum AutoIt von so vielen benutzt wird, es hat funktionen, die es zu einem perfekten Botprogramm machen.
Dazu gehören z.B.
Sleep()
PixelSearch()
MouseMove()
MouseClick()
HotKeySet()
_Func() / Func()
PixelGetColor()
While x
Do x Until y
Und natürlich auch das einfache GUI Design, zu dem ich später noch komme.
Um einen einfachen Aimbot zu programmieren, werd ich euch wieder einen Code zeigen und dann alles erklären. Dabei nehme ich an, dass die gegner als orangefarbene Punkte angezeigt werden.
Wie man an die genau Farbe als Hex-Angabe kommt, zeige ich euch noch später.
Zuerst: Um an den Hex-Wert der Farbe zu kommen, habe ich AutoIt Window Info benutzt, ein nützliches Programm, das sich im Installationsordner von AutoIt befindet.
HotKeySet setzt den Hotkey F8 auf die Funktion _Exit, welche ich am Ende deklahiere. Der Code
Bedeutet soviel wie: Wenn die Funktion _Exit ausgelöst wird (durch unseren Hotkey F8) dann führe folgenden Code aus: In diesem Fall nur Exit, welches bedeutet: Beende das Skript
Aber dieser Abschnitt interesiert uns eigentlich am meisten:
Die While 1 Schleife zeigt an, dass nach dem Start des Skripts nur diese Schleife ausgeführt wird und nichts außerhalb (Die Funktion _Exit ist unabhängig)
Die Variable $Search01 ist der Pixelsearch Nach dem Pixel mit der Farbe 0xFF3300 im Radius von Pixel 0,0 (oben,links) 1800,1800 (unten,rechts) also der ganze Bildschirm. Der Nächste schritt überprüft, ob die Farbe gefunden wurde und wenn ja:
Dann Bewege die Maus zur Position des Pixels und klicke mit links.
Das wäre ein einfacher Aimbot :awesome:
2.4 Das GUI
Wie schon erwähnt, ist das GUI Design in AutoIt besonders leicht verständlich, trotzdem gibt es natürlich Dinge zu beachten.
Es gibt 2 Gruppen, zwischen denen bei AutoIt unterschieden wird, und zwar:
GUI und GUICTRL
Als GUI (Grafical User Interface) wird das Fenster an sich bezeichnet,
mit GUICreate wird ein neues Fenster erstellt, an das GUI wird immer eine Variable gebunden:
Hier wird ein quadratisches Fenster mit den Maßen 250x250 Pixel in der oberen linken Ecke des Bildschirms erstellt. Jetzt dürfte schon klar geworden sein, dass die ersten beiden Zahlen die Abmessungen und die beiden hinteren Zahlen die Position angeben.
Dabei gibt die erste Zahl der Kombination immer Rechts/Links und die Zweite Oben/Unten an.
Als GUICTRL (Grafical User Interface Control) werden die Eingabemechanismen für das GUI bezeichnet, also Buttons, Labels, Inputboxen, etc.
Mit GUICtrlCreate wird ein neuer Mechanismus erstellt, dieser wird ebenfalls an eine Variable gebunden. Außerdem wird noch angehängt, was man erstellen will:
Hiermit wird ein Knopf mit der Länge 100 Pixel und der Höhe 50 Pixel in der oberen linken Ecke des GUI-Fensters erstellt. Mit mehreren Fenstern ist dies etwas komplizierter, aber dazu werde ich später noch etwas schreiben.
2.5 Koda Formdesigner
Wenn man sich mühsames Abmessen und Ausrechnen von Positionen und Längen sparen will gibt es ein super Programm: den Koda Formdesigner. Damit lassen sich in sekundenschnelle Fenster und Funktionen gut erstellen und platzieren.
Nur zu empfehlen!
3.1 NomadMemory
Mit AutoIt kann man natürlich nicht nur Bots machen, sondern auch andere Hacks, dazu gehört auch Memoryhacking.
Dies ist mit NomadMemory möglich (Es geht zwar auch ohne, aber damit ist es wesentlich leichter).
Mit NomadMemory können Anwendungen geöffnet und bestimmte Hex-Werte darin verändert werden.
Beispielcode:
Erklärung:
Das ist ein einfacher Memoryhack den ich kurz gecoded habe. Er basiert nicht auf einem echten Spiel und die Adressen sind nur ausgedacht! Das dient nur zur Demonstration :eek:
Also, das GUI interessiert uns gar nicht, ich wollte nur das der Code vollständig ist.
Wir fangen an mit:
Also, oben ist das Case $Button1 das heißt, wenn $Button1 gedrückt wird, dann:
Überprüfe ob der Prozess existiert.
Wenn ja, dann kommt eine Message Box mit Titel "Hack" und der Beschriftung "Game.exe found!"
(Ich springe kurz runter zum Ende):
Wenn der Prozess nicht existiert dann bring eine Message Box mit Hack" und "Game.exe not found!
(Wieder zurück):
Warte auf den Prozess Game.exe und "öffne" es um die Hex-Werte zu ändern.
(Letzter Schritt):
Lese den Wert aus der Inputbox und speichere ihn in der variable $NMoney
Lese den Wert der Checkbox, die überprüft, ob der Hack durchgeführt werden soll, wenn sie geclickt ist (True/1) dann Überschreibe den Hex-Wert "Geld"
wenn nicht, tue garnichts.
_MemoryWrite ist ein NomadMemory Befehl.
Die Anordnung ist _MemoryWrite(Variable mit Hexwert zu Überschreiben, Variable mit geöffnetem Prozess, Variable mit neuem Dezimalwert, Typ des neuen Wertes (Optional))
Und das war der ganze Code :)
3.2 Cheatengine und AutoIt
Dies ist nur eine kurze Anmerkung. Im ersten Teil, habe ich nur erklärt, wie man Hex-Adressen und die zugehörigen Values verändert. Jetzt erkläre ich, wie man an die Adressen kommt.
Wer sich mit CE auskennt, kann diesen Teil einfach auslassen.
Zuerst öffnet ihr das Programm, das ihr jacken wollt. Famgt am besten nicht gleich mit Onlinespielen an, da diese oft mit Hackshields o.Ä. ausgestattet sind und manche Values encrypted oder Serverside sind. Am besten fangt ihr mit etwas einfachem an, wie Geld oder Leben in einem Offlinegame zu hacken.
Also wir fangen an indem wir das Programm und Cheatengine öffnen.
Jetzt sehen wir uns den Wert des Geldes an, angenommen dieser beträgt 500, dann gehen wir zu Cheatengine und klicken auf den lauchtenden PC in der linken oberen Ecke, suchen und öffnen unseren Prozess. Wir ändern erstmal die Sucheinstellungen auf Exact Value und All (Byte to Double) wir könnten auch einzeln nach 4 Bytes, Float, Double, etc. suchen, aber wir wissen ja nicht, als was der Geldwert gespeichert ist. Jetzt geben wir 500 ein und klicken auf First Scan.
Es werden warscheinlich mehrere tausend Adressen gefunden. Jetzt geben wir etwas Geld aus z.B. 50, dann suchen wir nach 450 mit Next Scan.
Das machen wir solange, bis wir nurnoch ein paar Adressen übrig haben ca. 3-4 manchmal auch nur 1 oder auch 5 oder 6 kommt ganz auf das Spiel an.
Dann ändern wir einfach den Wert wie es uns gefällt.
Jetzt aber wieder zu AutoIt:
Euch wird auffallen, dass die Adressen garnicht mit 0x anfangen. Allerdings erkennt AutoIt Hex-Adressen nur, wenn man 0x davor setzt (bitte fragt nicht warum, ich hab auch keine Ahnung)...
Jetzt können wir die gefundenen Adressen für unseren Hack benutzen!
4. Schlusswort
Ich hoffe das Tutorial hat euch geholfen und es war nicht zu komliziert, ein bisschen viel Text vielleicht, aber Proggen ist halt keine allzu leichte Sache :D
Wenn euch noch was einfallen sollte oder etwas unklar ist bitte meldet euch schreibt nen Post, PM mich... oder so.
Und wenn ihr Zeit habt bitte THX :handsdown:
MFG Dradgeyo
Index:
1. Die Anfänge
1.1 Was kann AutoIt, was kann es nicht?
1.2 "Hello World"
1.3 Variablen
2. Mein erstes Programm
2.1 Einfache Arrays
2.2 Mehrdimensionale Arrays
2.3 (Aim)Bots
2.4 Das GUI
2.5 Koda Formdesigner
3. Andere Hacks
3.1 NomadMemory
3.2 Cheatengine und AutoIt
4. Schlusswort
--------------------------------------------------------------------------
1.1 Was kann AutoIt, was kann es nicht?
Zu allererst ist wichtig, dass man weiß, dass AutoIt nur eine Programmiersprache für Anfänger von Programming und für schnelles Botting und Hacking ist, sie wird euch bei großen Projekten wenig nützen, da sie für professionelle Entwicklung einfach zu simpel ist. Es eignet sich aber eben deshalb gut als Sprache für Einsteiger.
Man kann natürlich auch gleich mit schwereren Sprachen anfangen, aber AutoIt ist ein guter Einstieg.
1.2 "Hello World
Um euch in den Skripteditor SciTe einzuführen, werde ich mit euch zuerst ein standard "Hello World" - Programm schreiben.
Dafür werde ich eine Message Box benutzen, also ein einfaches Popup, das einen Text anzeigt.
Code:
MsgBox(0,"Test","Hello World")
Erklärung:
MsgBox der Befehl für das Anzeigen einer Message Box
0 Das ist im Moment noch unwichtig und zu kompliziert
"Test" Der erste String steht für den Titel der Box
"Hello World" Der zweite String steht für den eigentlichen Text in der Box
1.3 Variablen
Das wichtigste was man zum Anfang des Programmierens wissen muss:
Was sind Variablen?
Variablen werden für die meisten Befehle benutzt. Falls ihr euch an die Schule erinnert, da waren Variablen meistens Buchstaben, also X, Y, Z, etc.
Diese Buchstaben stehen für Zahlen, Wörter oder Ähnliches.
Das funktioniert in AutoIt und den meisten anderen Programmiersprachen genauso, allerdings kann man hier nicht nur Buchstaben benutzen, es können auch ganze Wörter oder selbst Zahlen sein.
Um Variablen in AutoIt zu deklahieren (Festzulegen, was für was sie stehen)
benutzt man das Zeichen $ vor dem Namen der Variable.
Außerdem setzt man noch Dim davor. (Muss man nicht, verhindert aber bestimmte Fehler, auf die ich jetzt nicht eingehen möchte)
Ein Beispiel:
Code:
Dim $Variable1 = 10 Dim $Variable2 = "Hello World"
Und $Variable2 steht für den Satz: Hello World
An dieser Stelle ist noch wichtig zu sagen, dass in AutoIt Strings, also Sätze oder Wörter IMMER mit " " umgeben sind.
2.1 Einfache Arrays
Was sind Arrays?
Arrays sind Variablen, die mehrere andere Variablen speichern.
Klingt kompliziert, ist aber eigentlich ganz simpel.
Sie werden deklahiert wie ganz normale Variablen, nur hängt man dahinter noch eine eckige Klammen an, die anzeigt wieviele Variablen der Array enthält.
Außerdem müssen wir noch Array.au3 includen, wie das geht zeige ich im Beispiel.
Hier ein Beispiel zum besseren Verständnis:
Code:
#include <Array.au3> Dim $Array[3] $Array[0] = "Hello World" $Array[1] = 25 $Array[2] = "String" _ArrayAdd($Array,50) _ArrayDisplay($Array,"Kompletter Array")
#include fügt eone externe AutoIt Datei ein, mit deren Hilfe bestimmze Sachen benutzt werden können, die nicht standardmäßig in AutoIt enthalten sind
Dim $Array[3] deklahiert einen Array mit insgesamt 4 speicherbaren Werten. Aber warum nicht 3 Werte?
Im nächsten Abschnitt sieht man, das ich bei $Array[0], also bei der 0ten Variable von $Array begonnen habe, das macht insgesamt dann also 4 Variablen.
Mit dem neuen Befehl _ArrayAdd füge ich dem Array ($Array, den Wert 50) hinzu, dieser wird einfach in den frühesten, ncoh nicht belegten Platz eingefügt, in unserem Fall $Array[3]
2.2 Mehrdimensionale Arrays
Ich werde hier nicht zu sehr auf Arrays eingehen, da man als kleiner Progger überhaupt nicht alles braucht, trotzdem können mehrdimensionale Arrays hilfreich sein...
Während Eindimensionale Arrays wie Listen arbeiten,
fungieren z.B. Zweidimensionale Arrays wie Tabellen.
Sie werden ähnlich deklahiert:
Code:
Dim $ZArray[10][5]
Es gibt auch Vieldimensionale Arrays, also Würfel als dreidimensionale Arrays oder Vierdimensionale Arrays, ohne eine definierbare Form
Also:
Code:
Dim $DArray[10][10][5]
Code:
Dim $VArray[5][10][5][10]
Und der Array VArray kann 2500 Variablen vierdimensional speichern.
2.3 (Aim)Bots
Nun zu einem ganz anderen Thema, das wohl der Grund ist, warum AutoIt von so vielen benutzt wird, es hat funktionen, die es zu einem perfekten Botprogramm machen.
Dazu gehören z.B.
Sleep()
PixelSearch()
MouseMove()
MouseClick()
HotKeySet()
_Func() / Func()
PixelGetColor()
While x
Do x Until y
Und natürlich auch das einfache GUI Design, zu dem ich später noch komme.
Um einen einfachen Aimbot zu programmieren, werd ich euch wieder einen Code zeigen und dann alles erklären. Dabei nehme ich an, dass die gegner als orangefarbene Punkte angezeigt werden.
Wie man an die genau Farbe als Hex-Angabe kommt, zeige ich euch noch später.
Code:
HotKeySet("{F8}","_Exit") While 1 $Search01 = PixelSearch(0,0,1800,1800,0xFF3300) If IsArray($Search01) = True Then MouseMove($Search01 [0], $Search01 [1],1) MouseClick("left") EndIf WEnd Func _Exit() Exit EndFunc
HotKeySet setzt den Hotkey F8 auf die Funktion _Exit, welche ich am Ende deklahiere. Der Code
Code:
Func _Exit() Exit EndFunc
Aber dieser Abschnitt interesiert uns eigentlich am meisten:
Code:
While 1 $Search01 = PixelSearch(0,0,1800,1800,0xFF3300) If IsArray($Search01) = True Then MouseMove($Search01 [0], $Search01 [1],1) MouseClick("left") EndIf WEnd
Die Variable $Search01 ist der Pixelsearch Nach dem Pixel mit der Farbe 0xFF3300 im Radius von Pixel 0,0 (oben,links) 1800,1800 (unten,rechts) also der ganze Bildschirm. Der Nächste schritt überprüft, ob die Farbe gefunden wurde und wenn ja:
Dann Bewege die Maus zur Position des Pixels und klicke mit links.
Das wäre ein einfacher Aimbot :awesome:
2.4 Das GUI
Wie schon erwähnt, ist das GUI Design in AutoIt besonders leicht verständlich, trotzdem gibt es natürlich Dinge zu beachten.
Es gibt 2 Gruppen, zwischen denen bei AutoIt unterschieden wird, und zwar:
GUI und GUICTRL
Als GUI (Grafical User Interface) wird das Fenster an sich bezeichnet,
mit GUICreate wird ein neues Fenster erstellt, an das GUI wird immer eine Variable gebunden:
Code:
$Fenster1 = GUICreate(250,250,1,1)
Dabei gibt die erste Zahl der Kombination immer Rechts/Links und die Zweite Oben/Unten an.
Als GUICTRL (Grafical User Interface Control) werden die Eingabemechanismen für das GUI bezeichnet, also Buttons, Labels, Inputboxen, etc.
Mit GUICtrlCreate wird ein neuer Mechanismus erstellt, dieser wird ebenfalls an eine Variable gebunden. Außerdem wird noch angehängt, was man erstellen will:
Code:
$Button1 = GUICtrlCreateButton(100,50,1,1)
2.5 Koda Formdesigner
Wenn man sich mühsames Abmessen und Ausrechnen von Positionen und Längen sparen will gibt es ein super Programm: den Koda Formdesigner. Damit lassen sich in sekundenschnelle Fenster und Funktionen gut erstellen und platzieren.
Nur zu empfehlen!
3.1 NomadMemory
Mit AutoIt kann man natürlich nicht nur Bots machen, sondern auch andere Hacks, dazu gehört auch Memoryhacking.
Dies ist mit NomadMemory möglich (Es geht zwar auch ohne, aber damit ist es wesentlich leichter).
Mit NomadMemory können Anwendungen geöffnet und bestimmte Hex-Werte darin verändert werden.
Beispielcode:
Code:
#include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <NomadMemory.au3> #RequireAdmin $Form1 = GUICreate("Hack", 207, 100, 192, 125) $Checkbox1 = GUICtrlCreateCheckbox("Geld", 8, 8, 81, 17) $Checkbox2 = GUICtrlCreateCheckbox("Leben", 8, 32, 81, 17) $Input1 = GUICtrlCreateInput("", 88, 8, 105, 21) $Input2 = GUICtrlCreateInput("", 88, 32, 105, 21) $Button1 = GUICtrlCreateButton("Start1", 88, 55, 105, 21) $Button2 = GUICtrlCreateButton("Start2", 88, 80, 105, 21) GUISetState(@SW_SHOW) $Money = 0x102461A0 $HP =0x00104A02 While 1 $nMsg = GUIGetMsg($Form1) Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 If ProcessExists("Game.exe") <> 0 Then MsgBox(0,"Hack","Game.exe found!") $PID = ProcessWait("Game.exe") $OPEN = _MemoryOpen($PID) $NMoney = GUICtrlRead($Input1) If GUICtrlRead($Checkbox1) = 1 Then _MemoryWrite($Money, $OPEN, $NMoney, "dword") EndIf Else MsgBox(0,"Hack","Game.exe not found!") EndIf Case $Button2 If ProcessExists("Game.exe") <> 0 Then MsgBox(0,"Hack","Game.exe found!") $PID = ProcessWait("Game.exe") $OPEN = _MemoryOpen($PID) $NHP = GUICtrlRead($Input1) If GUICtrlRead($Checkbox1) = 1 Then _MemoryWrite($Money, $OPEN, $NHP, "dword") EndIf Else MsgBox(0,"Hack","Game.exe not found!") EndIf EndSwitch WEnd
Das ist ein einfacher Memoryhack den ich kurz gecoded habe. Er basiert nicht auf einem echten Spiel und die Adressen sind nur ausgedacht! Das dient nur zur Demonstration :eek:
Also, das GUI interessiert uns gar nicht, ich wollte nur das der Code vollständig ist.
Wir fangen an mit:
Code:
Case $Button1 If ProcessExists("Game.exe") <> 0 Then MsgBox(0,"Hack","Game.exe found!") $PID = ProcessWait("Game.exe") $OPEN = _MemoryOpen($PID) $NMoney = GUICtrlRead($Input1) If GUICtrlRead($Checkbox1) = 1 Then _MemoryWrite($Money, $OPEN, $NMoney, "dword") EndIf Else MsgBox(0,"Hack","Game.exe not found!") EndIf
Überprüfe ob der Prozess existiert.
Wenn ja, dann kommt eine Message Box mit Titel "Hack" und der Beschriftung "Game.exe found!"
(Ich springe kurz runter zum Ende):
Code:
Else MsgBox(0,"Hack","Game.exe not found!")
(Wieder zurück):
Code:
$PID = ProcessWait("Game.exe") $OPEN = _MemoryOpen($PID)
(Letzter Schritt):
Code:
$NMoney = GUICtrlRead($Input1) If GUICtrlRead($Checkbox1) = 1 Then _MemoryWrite($Money, $OPEN, $NMoney, "dword") EndIf
Lese den Wert der Checkbox, die überprüft, ob der Hack durchgeführt werden soll, wenn sie geclickt ist (True/1) dann Überschreibe den Hex-Wert "Geld"
wenn nicht, tue garnichts.
Code:
_MemoryWrite($Money, $OPEN, $NMoney, "dword")
Die Anordnung ist _MemoryWrite(Variable mit Hexwert zu Überschreiben, Variable mit geöffnetem Prozess, Variable mit neuem Dezimalwert, Typ des neuen Wertes (Optional))
Und das war der ganze Code :)
3.2 Cheatengine und AutoIt
Dies ist nur eine kurze Anmerkung. Im ersten Teil, habe ich nur erklärt, wie man Hex-Adressen und die zugehörigen Values verändert. Jetzt erkläre ich, wie man an die Adressen kommt.
Wer sich mit CE auskennt, kann diesen Teil einfach auslassen.
Zuerst öffnet ihr das Programm, das ihr jacken wollt. Famgt am besten nicht gleich mit Onlinespielen an, da diese oft mit Hackshields o.Ä. ausgestattet sind und manche Values encrypted oder Serverside sind. Am besten fangt ihr mit etwas einfachem an, wie Geld oder Leben in einem Offlinegame zu hacken.
Also wir fangen an indem wir das Programm und Cheatengine öffnen.
Jetzt sehen wir uns den Wert des Geldes an, angenommen dieser beträgt 500, dann gehen wir zu Cheatengine und klicken auf den lauchtenden PC in der linken oberen Ecke, suchen und öffnen unseren Prozess. Wir ändern erstmal die Sucheinstellungen auf Exact Value und All (Byte to Double) wir könnten auch einzeln nach 4 Bytes, Float, Double, etc. suchen, aber wir wissen ja nicht, als was der Geldwert gespeichert ist. Jetzt geben wir 500 ein und klicken auf First Scan.
Es werden warscheinlich mehrere tausend Adressen gefunden. Jetzt geben wir etwas Geld aus z.B. 50, dann suchen wir nach 450 mit Next Scan.
Das machen wir solange, bis wir nurnoch ein paar Adressen übrig haben ca. 3-4 manchmal auch nur 1 oder auch 5 oder 6 kommt ganz auf das Spiel an.
Dann ändern wir einfach den Wert wie es uns gefällt.
Jetzt aber wieder zu AutoIt:
Euch wird auffallen, dass die Adressen garnicht mit 0x anfangen. Allerdings erkennt AutoIt Hex-Adressen nur, wenn man 0x davor setzt (bitte fragt nicht warum, ich hab auch keine Ahnung)...
Jetzt können wir die gefundenen Adressen für unseren Hack benutzen!
4. Schlusswort
Ich hoffe das Tutorial hat euch geholfen und es war nicht zu komliziert, ein bisschen viel Text vielleicht, aber Proggen ist halt keine allzu leichte Sache :D
Wenn euch noch was einfallen sollte oder etwas unklar ist bitte meldet euch schreibt nen Post, PM mich... oder so.
Und wenn ihr Zeit habt bitte THX :handsdown:
MFG Dradgeyo