Hay Leute, da mich leztens wieder ein paar Leute gefragt haben wie man denn nun mit CE ("Cheat Engine") Adressen sucht, dachte ich mir ein Tutorial dafür zu machen. Ich versuche es so einfach wie möglich aber auch so umfangreich wie möglich zu halten. Also als erstes klären wir mal was CE ("Cheat Engine") ist.
Was ist Cheat Engine?
Cheat Engine ist ein sogenannter "Memoryeditor", was muss daraus verstehen? Erstmal müssen wir verstehen was ein "Memory" ist. "Memory" kommt aus dem Englischen und bedeuted soviel wie Speicher,Erinnerung. Dass trifft aber nur halbwegs für den Memory des Programmes zu. Der Memory ist der "virtuelle Speicher" der in RAM (Random Acces Memory) geladen wird. Virtuell bedeuted hier, dass er nicht dauerhaft bestehend ist und dass er auch nicht Statisch ist. Merkt euch dass für Später, Statisch = Bleibend, es bleibt sozusagen stehen, Dynamisch= Jedes mal anders,wechselnd. Jedenfalls hat jeder Prozess einen Memory indem er verschiedene Daten,underanderem auch Spielstände zwischenspeichert. Nun, wie hängt dass mit CE zusammen? Darum geht es in den nächsten Bereich.
Wie arbeitet Cheat Engine?
Cheat Engine arbeited in großen und ganzen ziemlich simpel, ist aber doch zugleich sehr umfassend. CheatEngine attacht (attackiert) / wendet man gegen einen Prozess an. Für unseren S4 Prozess auch. Aber damit dass klappt muss man S4 Suspenden, dazu kommen wir aber später noch. Jedenfalls hatt jeder Prozess ein Memory in dem er Daten speichert (siehe oben). In diesen Daten sind wie schon gesagt zum Beispiel erfolge,kills,looses die dann nach angenommen einer Runde zum festen Bestand wechseln, also in den ROM (Festwertspeicher). Um nach unseren Adressen zu suchen müssen wir erst einmal wissen wie sie deklariert bzw. Umschrieben sind. Doch zuerst sollten wir die Datentypen klären, darum geht es in den nächsten Abschnitt.
Die Datentypen, was bringen sie und wie heißen sie?
Um es den Prozessor und der gesamten Arbeitsplatine einfacher zu machen, werden alle Daten in sogenannten Datentypen gespeichert. Dies ermöglicht eine schnellere Verarbeitung und dazu eine einfachere Identifizierung bzw. Eine einfachere Suche nach ihnen. Es gibt 9 Datentypen nach denen man in CE suchen kann, diese hier:
Binary = Dass sogenannte Binary (Binärsystem) kann man auch Base-2-System nennen. Es stellt nummerische Werte mit 2 Symbolen, 0 und 1. Dass bedeuted wenn man zum Beispiel nach etwas suchen will dass als Binary, Binärsystem gespeichert ist, ist es eine suchen mit 0 und 1 zB "0010010100111100010010". Hiermit werden die Zahlen dargestellt und die Anzahl der Bits (der Ziffern) bestimme hier den Maximalwert.
Byte = Byte ist ein Mengenbegriff der für eine Zusammenstellung aus fast immer 8 Bit besteht. Dass bedeuted dass ein Byte sich aus 8 anderen Bits zusammenstellt. Hier zum Beispiel ein kleines Umrechnungsbeispiel: 1012 Byte = 1.000.000.000.000*Byte
2 Bytes,4 Bytes, 8 Bytes = Es ist dass selbe wie die Umschreibung für ein Byte nur dass das dann halt sich für mehrere Bytes betrifft (2,4,8).
Float = Float ist eine Gleitkommazahl. Dass bedeuted auf gut Deutsch es ist ein Wert wie 0,00 oder 201,7456585794879338.
Double = Wer gut Englisch kann wird sicher hierausverstehen dass es dass Doppelte von Float ist. Ein Float hat 4 Bytes dementsprechend ist ein Double 8 Bytes groß. Dadurch lassen sich
deutlich präzisere Zahlen errechnen.
Text = Wie der Name schon sagt ein Text wie zB. Hallo oder LICENSE_SUBMACHINE_GUN. Der hiergenannte Text wird auch als String geschimpft. Der String hatt an Wertlosigkeit verloren da viele ihn für "Billig" oder als "Zu Einfach" bezeichnen, dass sind aber meist Leute die Fans von Floats oder Doubles sind, da es mehr Arbeit ist nach einem gescheiten Float zu suchen als nach einem guten String.
Array of Bytes = Dass bedeuted eine Ansammlung von Bytes.
So die Datentypen wären geklärt. Nun geht es in dem nächsten Abschnitt um dass Suchen von diesen Datentypen.
Wie suche ich nach Strings,Floats usw.?
Ganz einfach, ihr öffnet Cheat Engine geht auf den blinkenden PC und wählt den Prozess aus.
Vorsicht! Da man Cheat Engine für nicht erwünschte Zwecke nutzen kann, wird es von viele Spielen wie zum S4 geblockt. Doch dass lässt sich durch dass Suspenden umgehen. Jezt werden sich einige Fragen was suspenden ist. Suspenden ist dass sogenannte "einfrieren" von S4 Prozessen. Etwas das Eingefroren ist kann sich schlecht ausbauen,weiterentwickeln bzw. Sich wehren. Es gibt verschiedene Programme die dass können (nein der Taskmanager nicht xD). Programme wie ProzessExplorer kurz Procexp sind in der Lage dies zu tun. In diesem Falle suspendent den S4 prozess mit allen anderen Abzweigungen (Aegis,HGWC <- Ich weis dass HGWC keine Abzweigung ist!). Nun attacht ihr CE gegen den S4 Prozess der "S4Client.exe" heißt. Nun habt ihr viele Sachen zum Anklicken. Die Handhaben ist eigentlich Einfach da sich vieles von alleine klärt. Ihr habt in der mitte ein Inputfeld also ein Eingabefeld wo ihr eingeben könnt nach was ihr sucht. Aber Achtung! Ihr müsst vorher den Datentyp 2 Felder unter dem Feld deklarieren (siehe Dadtentypen)! Ich suche jezt zum Beispiel mal nach Power. Power ist ein Wort in diesem Falle ein Text. Also klicke ich in dem Auswahlfeld und wähle Text aus. Bei Memoryscan Options macht ihr den Punkt bei All, dass erklärt sich wohl von alleine. Dann geht ihr auf First Scan.
Jezt durchsucht er den memory nach Datentyp unf Kennung bzw. Nach Deklarierung. Jezt seht ihr in dem Fenster daneben alle Adressen und Werte die als "Power" deklariert sind.
Sind diese Grün heißt es sie sind Statisch, sind sie Grau heißt dass sie sind Dynamisch (siehe: Was ist Cheat Engine). Nun seht ihr noch den Haken "Case sensitive", dass bedeuted dass er nach der Groß- und Kleinschreibung Achten soll. Wenn wir noch einmal suchen wollen dann müssen wir auf New Scan klicken. Next Scan ist dafür da, um sich auf bestimmte Adressen zu beschränken. Dazu ein Beispiel:
"Das Leben ist wie ein Memory. Gerade habe ich 8 Äpfel will mir aber mehr Cheaten. Ich suche mit meiner CE nach Float 8. Da es im Leben mehr als nur 8 Äpfel sondern auch zum Beispiel 8€ gibt, finde ich etwa zu viel. Dann Esse ich halt einen auf, dann habe ich nurnoch 7 Äpfel. Jezt gebe ich 7 ein und gehe auf Next Scan. Jezt sehe ich alle Adressen von vorhin die sich von den Wert 8 auf 7 gesezt haben, da ich ja einen Apfel gegessen habe. Nun mache ich ich Doppelklick auf alle Adressen, die erscheinen dann unten.
Ich änder den Wert in 99 und mache ein Häckchen bei Frozen. Jezt habe ich auf einmal 99 Äpfel und wenn ich einen Aufesse sind es trozdem noch 99."
Natürlich ist jede Deklarierung "umgeben" von anderen. Darum geht es in den nächsten Absatz.
Wie finde ich die "Umgebung" des Wertes?
Ganz einffach, such nach einen Wert und mach in der linken Spalte Rechtsklick und gehe auf "Browse in this Memoryrregion". Dort seht ihr dann ein Fenster wo ihr unten und oben Scrollen könnt. Oben ist unwichtig, unten aber schon. So kann man auf die Suche nach neuen Strings bzw. Werten gehen. So nun haben wir unsere Adressen aber ich würde sie gerne irgendwie Speichern, wie mache ich das? Darum geht es in den nächsten Absatz.
Wie speichere ich die gefundenen Adressen?
Macht Doppelklick auf alle Adressen die ihr haben wollt, sodass sie unten in das Feld reinkommen. Dann geht auf Save. Jezt gibt es 2 verschiedene Varianten. XML oder CT? XML ist es als ein Internet Explorer Document oder als eine Webbrowserdokument zu speichern. Wenn ihr Doppelklick auf dass gespeicherte XML Dokument macht, seht ihr sowas wie dass hier:
Dass ist etwas zu kompliziert um es jezt zu Erklären. 0032107C ist jedenfalls hier unsere Adresse.Sie ist hexdezimal. Sie ist Typ 7 und hatt eine Länge von 5 da ich nach Power gesucht hab, und Power eine länge von 5 hat. Aber wenn ihr einen Hack machen wollt, und mit der Nomadmemory.au3 Arbeiten wolt, dann müsst ihr bedenken dass in dem Falle sie char[6] ist. Dass liegt daran dass ein String mit einem "\00"-Byte abgeschlossen wird. Die "sogenannte" Gleichung dafür Lauted:
char = Text + 1
Bei einem VB Hack, mit einem Memorymodul müsst ihr die Adresse nehmen aber ohne die 00 am anfang also sollte sie dann so aussehen: 32107C
So wenn wir es aber als CT (Cheat Table) speichern wollen, können wir sie später direkt mit Cheat Engine öffnen indem wir auf Open gehen. EXE ist in diesen Fall unnötig, man kann mit CE auch Trainer machen aber diese funktionieren zwar sind aber schnell detected. Programmieren aus eigener Hand ist immer noch besser merkt euch dass!
So was kommt nun? Nichts. Wieso? Dass Tutorial ist zu Ende da mir gerade nicht weiteres Einfällt. Achja CE kann auch DLL´s Injecten (Inizieren)! Wenn ihr noch Vorschläge für dieses Tutorial habt (Verbesserungen,Formfehler,falsche Infos) so schreibt mir bitte eine PM oder Posted es in den Thread. Thanks braucht ihr mich nicht geben da dass hier nur ein Tutorial ist, also keine große Meisterleistung. Schnell geschrieben ist es auch
Ich hoffe es hatt euch gefallen, und ich hoffe auch dass es Einfach zu vestehen war. Vielleicht baue ich es noch aus, aber so wie es jezt ist gefällt es mir ^^
Schönen Tag noch, -CyberLinK-
Ps: Wer nicht weis woher er Strings bekommt der soll die SuFu (Suchfunktion) benutzen
Aber da ich Freundlich bin Poste ich mal ein Paar schon bekannte Strings damit ihr es austesten könnt:
0 Rules:
LICENSE_ -> 0
Slang:
slang -> 0
No Hour:
HOURS -> NON
Was ist Cheat Engine?
Cheat Engine ist ein sogenannter "Memoryeditor", was muss daraus verstehen? Erstmal müssen wir verstehen was ein "Memory" ist. "Memory" kommt aus dem Englischen und bedeuted soviel wie Speicher,Erinnerung. Dass trifft aber nur halbwegs für den Memory des Programmes zu. Der Memory ist der "virtuelle Speicher" der in RAM (Random Acces Memory) geladen wird. Virtuell bedeuted hier, dass er nicht dauerhaft bestehend ist und dass er auch nicht Statisch ist. Merkt euch dass für Später, Statisch = Bleibend, es bleibt sozusagen stehen, Dynamisch= Jedes mal anders,wechselnd. Jedenfalls hat jeder Prozess einen Memory indem er verschiedene Daten,underanderem auch Spielstände zwischenspeichert. Nun, wie hängt dass mit CE zusammen? Darum geht es in den nächsten Bereich.
Wie arbeitet Cheat Engine?
Cheat Engine arbeited in großen und ganzen ziemlich simpel, ist aber doch zugleich sehr umfassend. CheatEngine attacht (attackiert) / wendet man gegen einen Prozess an. Für unseren S4 Prozess auch. Aber damit dass klappt muss man S4 Suspenden, dazu kommen wir aber später noch. Jedenfalls hatt jeder Prozess ein Memory in dem er Daten speichert (siehe oben). In diesen Daten sind wie schon gesagt zum Beispiel erfolge,kills,looses die dann nach angenommen einer Runde zum festen Bestand wechseln, also in den ROM (Festwertspeicher). Um nach unseren Adressen zu suchen müssen wir erst einmal wissen wie sie deklariert bzw. Umschrieben sind. Doch zuerst sollten wir die Datentypen klären, darum geht es in den nächsten Abschnitt.
Die Datentypen, was bringen sie und wie heißen sie?
Um es den Prozessor und der gesamten Arbeitsplatine einfacher zu machen, werden alle Daten in sogenannten Datentypen gespeichert. Dies ermöglicht eine schnellere Verarbeitung und dazu eine einfachere Identifizierung bzw. Eine einfachere Suche nach ihnen. Es gibt 9 Datentypen nach denen man in CE suchen kann, diese hier:
Binary = Dass sogenannte Binary (Binärsystem) kann man auch Base-2-System nennen. Es stellt nummerische Werte mit 2 Symbolen, 0 und 1. Dass bedeuted wenn man zum Beispiel nach etwas suchen will dass als Binary, Binärsystem gespeichert ist, ist es eine suchen mit 0 und 1 zB "0010010100111100010010". Hiermit werden die Zahlen dargestellt und die Anzahl der Bits (der Ziffern) bestimme hier den Maximalwert.
Byte = Byte ist ein Mengenbegriff der für eine Zusammenstellung aus fast immer 8 Bit besteht. Dass bedeuted dass ein Byte sich aus 8 anderen Bits zusammenstellt. Hier zum Beispiel ein kleines Umrechnungsbeispiel: 1012 Byte = 1.000.000.000.000*Byte
2 Bytes,4 Bytes, 8 Bytes = Es ist dass selbe wie die Umschreibung für ein Byte nur dass das dann halt sich für mehrere Bytes betrifft (2,4,8).
Float = Float ist eine Gleitkommazahl. Dass bedeuted auf gut Deutsch es ist ein Wert wie 0,00 oder 201,7456585794879338.
Double = Wer gut Englisch kann wird sicher hierausverstehen dass es dass Doppelte von Float ist. Ein Float hat 4 Bytes dementsprechend ist ein Double 8 Bytes groß. Dadurch lassen sich
deutlich präzisere Zahlen errechnen.
Text = Wie der Name schon sagt ein Text wie zB. Hallo oder LICENSE_SUBMACHINE_GUN. Der hiergenannte Text wird auch als String geschimpft. Der String hatt an Wertlosigkeit verloren da viele ihn für "Billig" oder als "Zu Einfach" bezeichnen, dass sind aber meist Leute die Fans von Floats oder Doubles sind, da es mehr Arbeit ist nach einem gescheiten Float zu suchen als nach einem guten String.
Array of Bytes = Dass bedeuted eine Ansammlung von Bytes.
So die Datentypen wären geklärt. Nun geht es in dem nächsten Abschnitt um dass Suchen von diesen Datentypen.
Wie suche ich nach Strings,Floats usw.?
Ganz einfach, ihr öffnet Cheat Engine geht auf den blinkenden PC und wählt den Prozess aus.
Vorsicht! Da man Cheat Engine für nicht erwünschte Zwecke nutzen kann, wird es von viele Spielen wie zum S4 geblockt. Doch dass lässt sich durch dass Suspenden umgehen. Jezt werden sich einige Fragen was suspenden ist. Suspenden ist dass sogenannte "einfrieren" von S4 Prozessen. Etwas das Eingefroren ist kann sich schlecht ausbauen,weiterentwickeln bzw. Sich wehren. Es gibt verschiedene Programme die dass können (nein der Taskmanager nicht xD). Programme wie ProzessExplorer kurz Procexp sind in der Lage dies zu tun. In diesem Falle suspendent den S4 prozess mit allen anderen Abzweigungen (Aegis,HGWC <- Ich weis dass HGWC keine Abzweigung ist!). Nun attacht ihr CE gegen den S4 Prozess der "S4Client.exe" heißt. Nun habt ihr viele Sachen zum Anklicken. Die Handhaben ist eigentlich Einfach da sich vieles von alleine klärt. Ihr habt in der mitte ein Inputfeld also ein Eingabefeld wo ihr eingeben könnt nach was ihr sucht. Aber Achtung! Ihr müsst vorher den Datentyp 2 Felder unter dem Feld deklarieren (siehe Dadtentypen)! Ich suche jezt zum Beispiel mal nach Power. Power ist ein Wort in diesem Falle ein Text. Also klicke ich in dem Auswahlfeld und wähle Text aus. Bei Memoryscan Options macht ihr den Punkt bei All, dass erklärt sich wohl von alleine. Dann geht ihr auf First Scan.
Jezt durchsucht er den memory nach Datentyp unf Kennung bzw. Nach Deklarierung. Jezt seht ihr in dem Fenster daneben alle Adressen und Werte die als "Power" deklariert sind.
Sind diese Grün heißt es sie sind Statisch, sind sie Grau heißt dass sie sind Dynamisch (siehe: Was ist Cheat Engine). Nun seht ihr noch den Haken "Case sensitive", dass bedeuted dass er nach der Groß- und Kleinschreibung Achten soll. Wenn wir noch einmal suchen wollen dann müssen wir auf New Scan klicken. Next Scan ist dafür da, um sich auf bestimmte Adressen zu beschränken. Dazu ein Beispiel:
"Das Leben ist wie ein Memory. Gerade habe ich 8 Äpfel will mir aber mehr Cheaten. Ich suche mit meiner CE nach Float 8. Da es im Leben mehr als nur 8 Äpfel sondern auch zum Beispiel 8€ gibt, finde ich etwa zu viel. Dann Esse ich halt einen auf, dann habe ich nurnoch 7 Äpfel. Jezt gebe ich 7 ein und gehe auf Next Scan. Jezt sehe ich alle Adressen von vorhin die sich von den Wert 8 auf 7 gesezt haben, da ich ja einen Apfel gegessen habe. Nun mache ich ich Doppelklick auf alle Adressen, die erscheinen dann unten.
Ich änder den Wert in 99 und mache ein Häckchen bei Frozen. Jezt habe ich auf einmal 99 Äpfel und wenn ich einen Aufesse sind es trozdem noch 99."
Natürlich ist jede Deklarierung "umgeben" von anderen. Darum geht es in den nächsten Absatz.
Wie finde ich die "Umgebung" des Wertes?
Ganz einffach, such nach einen Wert und mach in der linken Spalte Rechtsklick und gehe auf "Browse in this Memoryrregion". Dort seht ihr dann ein Fenster wo ihr unten und oben Scrollen könnt. Oben ist unwichtig, unten aber schon. So kann man auf die Suche nach neuen Strings bzw. Werten gehen. So nun haben wir unsere Adressen aber ich würde sie gerne irgendwie Speichern, wie mache ich das? Darum geht es in den nächsten Absatz.
Wie speichere ich die gefundenen Adressen?
Macht Doppelklick auf alle Adressen die ihr haben wollt, sodass sie unten in das Feld reinkommen. Dann geht auf Save. Jezt gibt es 2 verschiedene Varianten. XML oder CT? XML ist es als ein Internet Explorer Document oder als eine Webbrowserdokument zu speichern. Wenn ihr Doppelklick auf dass gespeicherte XML Dokument macht, seht ihr sowas wie dass hier:
Dass ist etwas zu kompliziert um es jezt zu Erklären. 0032107C ist jedenfalls hier unsere Adresse.Sie ist hexdezimal. Sie ist Typ 7 und hatt eine Länge von 5 da ich nach Power gesucht hab, und Power eine länge von 5 hat. Aber wenn ihr einen Hack machen wollt, und mit der Nomadmemory.au3 Arbeiten wolt, dann müsst ihr bedenken dass in dem Falle sie char[6] ist. Dass liegt daran dass ein String mit einem "\00"-Byte abgeschlossen wird. Die "sogenannte" Gleichung dafür Lauted:
char = Text + 1
Bei einem VB Hack, mit einem Memorymodul müsst ihr die Adresse nehmen aber ohne die 00 am anfang also sollte sie dann so aussehen: 32107C
So wenn wir es aber als CT (Cheat Table) speichern wollen, können wir sie später direkt mit Cheat Engine öffnen indem wir auf Open gehen. EXE ist in diesen Fall unnötig, man kann mit CE auch Trainer machen aber diese funktionieren zwar sind aber schnell detected. Programmieren aus eigener Hand ist immer noch besser merkt euch dass!
So was kommt nun? Nichts. Wieso? Dass Tutorial ist zu Ende da mir gerade nicht weiteres Einfällt. Achja CE kann auch DLL´s Injecten (Inizieren)! Wenn ihr noch Vorschläge für dieses Tutorial habt (Verbesserungen,Formfehler,falsche Infos) so schreibt mir bitte eine PM oder Posted es in den Thread. Thanks braucht ihr mich nicht geben da dass hier nur ein Tutorial ist, also keine große Meisterleistung. Schnell geschrieben ist es auch
Ich hoffe es hatt euch gefallen, und ich hoffe auch dass es Einfach zu vestehen war. Vielleicht baue ich es noch aus, aber so wie es jezt ist gefällt es mir ^^
Schönen Tag noch, -CyberLinK-
Ps: Wer nicht weis woher er Strings bekommt der soll die SuFu (Suchfunktion) benutzen
0 Rules:
LICENSE_ -> 0
Slang:
slang -> 0
No Hour:
HOURS -> NON
Danksagungen: Ich danke alle Leute die dass hier ermöglicht haben, indem man mir es beigebracht hat. Auch möchte ich mich bedanken für alle die solche Tutorials gemacht haben und jezt denken, ich habe es von ihnen geklaut (ich kann euch beruhigen: ist es nicht ^^). Auch möchte ich mich bei Wikipedia bedanken, da ich mir dort Umschreibungen für die Datentypen geholt hab. Und FichteFoll´s Erweiterung oder verbesserung möchte ich auch erwähnen. Hoffe ich habe keinen Ausgelassen ;D
Anhang:


Wikipedia für zusätzliche Infos






