SearchForCheats.de.vu » Tutorials » Hacking Lesson #1: Die Grundkenntnisse


Hacking Lesson #1: Die Grundkenntnisse

Es gibt ein paar Regeln an die sich jeder (werdende) "Hacker" halten sollte:

  1. Da "Hacker" es sich nicht leisten können, sich an entscheidenden Stellen zu vertippen, achten sie einigermaßen auf ihre Orthographie (Rechtschreibung)
  2. Hacker stehlen niemals die Codes anderer Coder (es ist allerdings OK sich die Codes von anderen genauer anzusehen)
  3. Hacker informieren sich über die Sachlage und testen ihre Codes genau, bevor sie sie veröffentlichen. Bedenke, dass jeder Code ein Sicherheitsrisiko für den Benutzer darstellt!
  4. Werfe nicht mit deinem Wissen um dich, behalte stehts einen kleinen Teil zurück.

Es sei außerdem erwähnt, dass der Begriff "hacken" dieses Teilgebiet des Cheatens nur ansatzweise beschreibt. "Coden" oder "Programmieren" ist zumeist nicht nur ein besserer Begriff, er klingt auch gleichzeitig nicht so kindisch. Deswegen schreibe ich nur vom "hacken" in Anführungszeichen.
Nachdem das geklärt ist, fange ich mal an die Basics zu erläutern. Wir werden heute noch kein Spiel anfassen, geschweige denn, einen Code berechnen. Was du brauchen wirst ist Folgendes:

  • Dein Hirn (WICHTIG!)
  • Das Spiel, das du hacken willst
  • Den VBA (am besten 1.7.2) später auch den VBASDL
  • Den... *tadaaa* Windows-Calculator
  • Und... Parasytes (Kenobis?) ARCrypt (2.4b)

Erstelle dir schonmal eine Verknüpfung zum VBA und dem Windows-Calculator auf dem Desktop. Du wirst beide bald oft brauchen.

Die erste Frage, der wir uns stellen müssen, ist: Was macht ein Action Replay überhaupt?

Auszug aus dem Lexikon der Fachbegriffe:

Das Action Replay ist ein sog. "Cheatmodul", published von Datel. Der Name "Cheatmodul" ist allerdings eine etwas ungenaue Bezeichnung für diese Hardware, denn eigentlich ist ein "Cheatmodul" ein Memory-Hacker, welches den RAM von Spielen manipuliert. Wahlweise kann auch durch ROM-Patching-Slots das Spiel selbst manipuliert werden.

Aha. Herzlichen Dank. Alles was fett geschrieben ist, hast du nicht verstanden. ^^
Das Action Replay (wir nennen es ab jetzt AR, OK?) überschreibt also Werte in einem Spiel. Eigentlich ganz logisch. Wenn ich in dem Spiel den Wert für die Gesundheit habe und in permanent mit 100 überschreibe, muss das arme Spiel also denken, wir hätten immer 100 Leben. Ahaaa...

Die Zählweisen der Hacker:

Grundsätzlich wird der Memory nur in Hexadezimal-Zahlen ausgegeben. Das heißt, wenn ich den Wert 100 haben möchte, steht im Speicher 64. Oder andersrum, wenn im Memory FF steht, bedeutet das 255. Prinzipiell genügt es zu wissen, dass man die Zahlen mit dem Windows-Calculator umrechnen kann. (Wie? Das überlasse ich mal eurem gesunden Menschenverstand...) Wer es aber dennoch genauer wissen möchte, der kann sich die Sache einmal detailliert anhören. (ansehen?)

Im Dezimal-System, das uns gebräuchlich ist, basiert eine Stelle einer Zahlenreihe auf 10 oder einer Potenz von 10. Im Hexadezimal-System (Griech. Hex = Sechs)(Lat. decim = Zehn) basiert eine Stelle nun auf der Zahl 16. Im direkten Vergleich der einzelnen Stellen bedeutet das:

Dezimal:      |   1000er   |  100er  |  10er  |  1er
Hexadezimal:  |   4096er   |  256er  |  16er  |  1er
                (16 * 256)  (16 * 16) (16 * 1)

Verwirrt? Wunderbar! Um die Sache nocheinmal zu verdeutlichen: Da wir ja im Hexadezimal-System die fehlenden Zahlen von 10 – 15 benötigen, die die letzte Stelle der Zahl füllen müssen, hat man sich einfach darauf geeinigt, dafür die ersten Buchstaben des Alphabets zu benutzen. Immer noch nicht verstanden? Dann zählen wir mal in Hex:
0... 1... 2... 3... 4... 5... 6... 7... 8... 9... A... B... C... D... E... F...
Jetzt haben wir die letzte Stelle durchmodifiziert und sie steht nun auf dem höchsten möglichem Wert: 15 Was jetzt? Ganz einfach: Wir machen das selbe wie im Dezimal-System. Einen Übertrag. Also setzen wir die letzte Stelle wieder auf 0 und geben mit einer 1 davor an, dass diese Stelle bereits einmal komplett durchgezählt wurde. (Klingt komisch, aber wenn man darüber nachdenkt, dann macht man im Dezimalsystem auch nichts anderes). Also... Wo waren wir? Ach ja, bei 10. Jetzt wird es interessant. Denn du darfst zu dieser Zahl nicht einfach „Zehn“ sagen, das wäre ja falsch... Du musst dich daran gewöhnen „Eins““Null“ zu sagen. [...]
Moment. Es wird schon wieder verwirrend. Ich spreche natürlich von der Hexadezimal-Zahl 10. Die Dezimal-Zahl bleibt ganz einfach „Zehn“. Wie du also gemerkt hast, ist es sehr wichtig, in welchem Zähl-System eine Zahl steht. Und da auch niemand Lust hat immer das lange Wort „Hexadezimal“ zu schreiben gibt es 3 Möglichkeiten zur Deklaration. Entweder man schreibt 10(h) mit einem „h“ für Hexadezimal. (Ungebräuchlich) oder man schreibt $10 um anzugeben, dass es sich um eine Hex-Zahl handelt, oder (meine liebste Methode) man setzt ein 0x vor die Zahl.
Jetzt überprüfen wir mal, ob du alles verstanden hast. Nenne laut die Zahl, die nach der angegebenen Zahl kommt: (Für Lösung markieren)
19... 20 (Wir sind im Dezimal-System, Ätsch ^^)
0x9... 0xA
17(h)... 18(h)
$2F... $30
0x4096... 0x4097
999... 1000
0x3FFF... 0x4000

Es gibt neben dem Hexadezimal-System noch das Oktal-System. Dieses wird allerdings so gut wie gar nicht benutzt, daher spare ich mir hier alle Erläuterungen. Wir machen weiter mit... BITS

Hm... Bitte ein Bit... Hab ich schonmal irgendwo gehört... Was sagt das Lexikon dazu?

Ein Bit ist die kleinste für Computer lesbare Dateineinheit. Sie kann entweder negativ „0“ oder positiv „1“ lauten.

Hey, das hab ich verstanden! Ich kann mir ein Bit also wie einen Schalter vorstellen. Entweder ist er an (1) oder aus (0). Wenn wir jetzt auch noch wissen, dass eine Byte aus 8 Bit besteht, dann könnte man doch sagen:

0 = 0
1 = 1 (Jetzt wollen wir weiterzählen... Wir machen also das, was wir schon im Hexadezimal-System gemacht haben... Einen Übertrag)
10 = 2 (Oh my God... Jetzt kann 10 auch schon 2 heißen????)
11 = 3
100 = 4
101 = 5
110 = 6
111 = 7
1000 = 8
[...]

Wir setzen also immer wieder den letzteren Wert auf 0 und zählen zum Wert davor eins dazu. Wenn wir jetzt aber 8 Bit haben, dann wird die Sache schon ziemlich verwirrend. Angenommen da steht 10110011.
Wie krieg ich das in ein Dezimal oder Hexadezimal-System?
Hol mal den Windows-Calc raus und gib unter binär diese Zahl ein, setze danach den Modus auf Hexadezimal. 0xB3... Toll. ^^

Und jetzt der rechnerische Beweis:
Es gibt zwar einen Weg direkt von Bin nach Hex, aber ich werde hier den Umweg über Dezimal nehmen. Dazu rufen wir uns nocheinmal in’s Gedächtnis: Jede Stelle gibt an, wie oft die vorherige Stelle schon durchgezählt wurde. Die einzelnen Stellenwerte sind diese:

Binär: 128er  |  64er  |  32er  |  16er  |  8er  |  4er  |  2er  |  1er  |

Demnach also (von hinten):

 1       1       0       0       1        1        0        1
(1*1) + (1*2) + (0*4) + (0*8) + (1*16) + (1*32) + (0*64) + (1*128) = 1 + 2 + 16 + 32 + 128 = 179

Damit wäre die Zahl ins Dezimal-System konvertiert. Jetzt geht es weiter nach Hex.

Was ist der größte Wert, den eine Stelle im Hexadezimal-System angeben kann, der gleichzeitig auch in unserer Zahl steckt? 16, da 256 nicht mehr in 179 reinpasst. Das heißt, wir wissen jetzt schon, wie viele Stellen unsere Zahl Haben wird: 2. Jetzt brauchen wir das größte Vielfache von 16, das in unserer Zahl steckt... das ist... *überlegt* AH (11*16) = 176 das heißt die erste Stelle muss 11 im Hexadezimal-System sein, also B. Anschließend hängt man da noch die übrigen 3 Einer an und schon sind wir bei B3. Hat garnicht lange gedauert. ^^

Wer zuviel Zeit hat, kann ja noch ein paar Zahlen konvertieren, ich melde mich in 1 ½ Wochen mit der nächsten Lesson. (Und wer weiß? Vielleicht auch schon früher...)

Als "Hausaufgabe" sucht ihr euch bitte das Programm ARCrypt. Und noch etwas: Wer dieses Tutorial klaut, als Referat für Mathe benutzt oder sonstirgendwas damit anstellen will, der meldet sich bitte bei mir per Mail. ^^

"Pokémon" ist ein eingetragenes Warenzeichen der Firma Nintendo
"Action Replay" ist ein eingetragenes Warenzeichen von Datel Interact.
© www.SearchForCheats.de.vu by Mastermind_X
© 2006 - 2008