Freitag, 14. Juli 2000 //Karlsruhe//

Tutorial N° 1 // ©Molotov

How to crack Jagged Alliance 2

§*~´~*§*~´~*§*~´~*§*~´~*§*~´~*§*~´~*§*~´~*§*~´~*§*~´~*§*~´~*§*~´~*§*~´~*§*~´~*§*~´~*§*~´~*§*~´~*§*~´~*§*~´~*§*~´~*§*~´~

 

 

I.       Beleidigungen und Lebenslauf

II.      Benötigte Tools

III.     Der Crack

IV.     Nachwort

V.      Assembler-Kunde

VI.     ...und tschüss!

 

I. Für absolute Anfänger! Wenn ihr schon einmal etwas über die Grundlagen des Cracken gelesen habt, hilft euch das zwar ein bissel, aber hier bekommen auch Newbies, die sich gerade eben den ersten Disassembler gesaugt haben, eine Vollbedienung. Gibt es irgendetwas zu sagen? Ja...vielleicht das eine: Richtig große Cracker werden höchstens ein Hundertstel von denen, die es sich felsenfest vorgenommen haben! Ich spreche aus eigener Erfahrung. (Wer lacht da...?) Als ich mir das erste Tutor gesaugt habe, dachte ich mich könnte nichts und niemand aufhalten, ich wollte es Electronic Arts und Konsorten so richtig zeigen; jedes Spiel, jedes Shareware-Programm cracken das mir über den weg läuft. Als ich meine ersten Programme (KingPin, Mechwarrior2, Jagged Alliance 2) gecrackt hatte (simple checkroutine) dachte ich mir: Hey, scheiß einfach! Dann wagte ich mich an die ersten Shareware-Programme. Ich probierte es zuerst mit der mir bekannten Methode: Fehlertext in der String-Data suchen. Das Ergebnis war traurig: (Ich hatte mir eine PC-Welt Cd mit lauter Shareware-Kram gekauft) Von 78 Programmen habe ich sage und schreibe 2 gecrackt...Dann bekam ich irgendwie (danke gonzo, danke sn00pee!!!!) gesteckt das ein Debugger zum Cracken ganz nützlich sein kann, bzw. das man 70% aller Programme ohne Debugger gar nicht erst cracken kann! So. Also habe ich mir SoftIce gesaugt...kapiert habe ich das Programm bis heute nicht. Lange Rede, kurzer Sinn: The knowledge never stops! Aber lassen wir das. Ich will euch ja cracken helfen, nicht euch Angst einjagen. Na dann....let´s rock!

 

II. Benötigte Tools:

Hiew 5.01 oder besser      [Editor]
W32dsm 8.93 oder besser   [Disassembler]

 

Könnt ihr alles bei crackstore saugen (die beste Cracker Seite überhaupt! Kniet nieder, während sie geladen wird!) *g*

 

 

III. Also: Zuallererst müsst ihr Jagged Alliance voll installieren, alle Optionen anklicken. (schluckt ziemlich viel Platz, auf meiner 3,2 GB Platte...) Nach der Installation nehmt ihr die Installations-CD aus dem Laufwerk und startet das Spiel ohne irgendeine CD. Ein böser, böser Fehlertext erscheint der uns sagt:

 

DIE JAGGED ALLIANCE 2 PLAY CD WURDE NICHT GEFUNDEN.

DAS PROGRAMM WIRD JETZT BEENDET.

 

So, jetzt haben wir schon mal den ersten wichtigen Fixpunkt! Ein Fehlertext ist schon mal gut. Wir merken uns den Fehlertext oder schreiben ihn uns auf. Dann laden wir die Ja2.exe mit unserem Disassembler. Das geht wie folgt:

1.     Erst mal den W32dsm starten.

2.     Dann klickt ihr links oben auf „Dissasembler“

3.     Im nun aufklappenden Kontextmenü wählt ihr den ersten Befehl von oben aus, der lautet: „Open File to Dissasemble“

4.     Im folgenden „Select File“ Fenster geht ihr einfach in das Jagged Alliance Verzeichnis und doppelklickt auf die ja2.exe

Die wird nun geladen, ihr könnt den fortschritt an dem wandernden Balken oben erkennen. Bei mir (Celeron II, 500Mhz, 64 Mb RAM) hat das verdammt lange gedauert. (5 Minuten! Normalerweise ist das in ein paar Sekunden geschehen!) Ihr könnt ja derweil eine rauchen. Oder eine Musik-CD hören. Ein guter Tipp: Mit ein bissel Musik wird das Cracken zum Vergnügen. Ich leg` jetzt AC/DC auf. (Was ein ordentlicher Cracker ist, hört Rock und Metal! Weitersagen! ;-))

*dummdiedumm* So, jetzt ist die exe bei mir geladen. Falls ihr jetzt einen wirren Buchstabensalat im Fenster seht, seid ihr selber schuld! Ätsch! Erhängt euch! Erschießt euch! Allen die an ihrem Leben hängen würde ich empfehlen unter Disassembler -> Font -> Select Font die Schrift seines Vertrauens (bei mir Arial) zu wählen. Schon besser, was? (Sorry, an alle die sich wegen mir umgebracht haben! Wir sehen uns dann unten! ;-)) Aber lassen wir den scheiß. Nun müsst ihr auf einen Knopf klicken der

so ausschaut:

Er befindet sich rechts oben im W32dsm. Das ist die String-Data-References. (kurz: Strn Ref) In dem nun aufpoppenden Fenster sind  ziemlich viele Einträge zu sehen. Hier werden alle Fehlermeldungen und Dialoge gespeichert. Also Ihr kramt jetzt mal nach dem Zettel wo ihr den Fehlertext aufgeschrieben habt! Oder ihr wisst ihn noch auswendig. So, der Fehlertext fängt mit „Die Jagged....“ an. Also müsst ihr so weit runterscrollen bis ihr bei den Einträgen angekommen seid, die mit „D“ anfangen! Im unteren Drittel der „D“ Einträge steht der gesuchte Satz, etwas abgekürzt. Ein Doppelklick darauf bringt euch an die Stelle im Programm, in der Überprüft wird, ob eine (die richtige) CD im Laufwerk liegt! Ihr solltet jetzt hier sein:

Seht ihr die Stelle wo der jne steht, direkt über der Fehlermeldung? (Sieht so aus: 0040b2ce    753a    jne    0040b30a) Diese Stelle sagt dem Programm: Gehe im Programm weiter, wenn die Datenträger, von denen gelesen wird, nicht ein und die selben sind. Klartext: Wenn nur von Festplatte geladen wird; Fehlermeldung bringen! Was wir wollen ist doch, dass wir keine CD mehr brauchen, also dass das Spiel von der Festplatte läuft! Wir müssten dem Programm quasi sagen: Gehe weiter wenn von Festplatte gelesen wird! Statt einem jne müssen wir also ein jmp einsetzten!

Jne: Springe wenn die Laufwerke nicht gleich sind.

Jmp: Springe, scheißegal was bei dem Laufwerktest rausgekommen ist.

Bringt jetzt den Balken auf die Zeile wo der jne steht und notiert euch die Offset. Wo die steht? Ganz unten, in der Statusleiste von W32dsm.

 Ihr müsst nun die Zahlen/Buchstaben hinter dem @Offset abschreiben. Ohne das „h“! Das „h“ steht für Hexdezimal, unwichtig eigentlich...Die Zahlen brauchen wir nachher im Editor, um an diese Programmstelle zu kommen!

Leider können wir in w32dsm den Programmcode nicht ändern, jetzt kommt Hiew ins Spiel. Wir starten das Programm und gehen in das JA2 Verzeichniss auf unserer Platte. Dort bringen wir den Balken über die ja2.exe und drücken Enter. Jetzt gleich noch zwei mal Enter, um in den Decode-Modus zu kommen. Nur zur Orientierung, so sieht das aus:

Drückt jetzt F5 für Goto, und gebt dann die notierten Zahlen und Buchstaben (ab sofort heißt das: Offset) ein. Wenn ihr die Zahlen eingetippt habt, bringt euch die Enter Taste zu dem Programmpunkt! Jetzt seht ihr den jne vor euch, der Balken ist schon darüber. Mit F3 geht ihr in den Edit-Modus. Nun gebt ihr einfach eb ein, der jne müsste sich dann in einen jmp verwandelt haben. Mit F9 (für Update) speichert ihr die Einstellungen! Esc oder F10 für Quit.

Jetzt denkt ihr sicher: Das Programm ist gecrackt. Nee, noch nicht ganz! Wir gehen wieder in w32dsm, Disassemblen die ja2.exe wieder und gehen dann wieder zum Fehlertext in der String Data. Wenn wir doppelklicken kommen wir zum bereits veränderten Programmpunkt. Wenn wir dort angekommen sind, klicken wir aber noch mal auf die Meldung und siehe da....es gibt noch eine Zweite Abfrage! Wir bringen den Balken wieder über den jne, notieren uns die Offset. Sicherheitshalber überprüfen wir in der Strn-Data, ob es noch eine dritte Abfrage gibt: Doppelklick auf die Meldung. Und schon wieder eine Checkroutine! Dieses mal mit einem je! (Jump if equal=Springe wenn gleich) Jetzt das alte Spiel: Balken drüber, Offset notieren. Jetzt klicken wir noch mal auf die Meldung in der Strn-Data. Noch eine Abfrage, die letzte. Balken, Offset; dann ab in Hiew. Und wieder von vorne anfangen: ja2.exe öffnen, F5 Offset eingeben, Enter, F3 für edit, eb eingeben, F9 für speichern. Das macht ihr mit allen drei Offsets! Dann schließt ihr Hiew, und Startet Jagged Alliance 2. UND ES LÄUFT!!! JIPPIIIIEEE! Gutes Gefühl, was...? Und Jetzt geniest erst einmal dieses endgeile Taktical! Ich habe es schon 3 mal durch...

 

IV. Zum Schluss bleibt eigentlich nur das eine zu sagen: Nicht Aufgeben! Ihr habt ja gesehen was ein paar Zahlen am richtigen Ort anrichten können! Bis man diesen Ort gefunden hat vergehen oft Stunden, wenn man ihn dann aber hat, ist es relativ leicht. Abschließend gebe ich euch noch einen kleinen Crash-Kurs in Assembler-Kunde! (ASM) Das ist die Geschichte mit den ganzen jne´s und je´s! 

 

V. Assemblercodes sind immer relativ logisch, also ich habe sie einigermaßen schnell verstanden!

Hex:  Asm: Means:
75 or 0F85 jne jump if not equal
74 or 0F84 je jump if equal
EB jmp jump directly to
90  nop no operation
77 or 0F87 ja jump if above
0F86 jna jump if not above
0F83 jae jump if above or equal
0F82 jnae  jump if not above or equal
0F82 jb jump if below
0F83 jnb jump if not below
0F86 jbe jump if below or equal
0F87 jnbe jump if not below or equal
0F8F   jg  jump if greater
0F8E jng jump if not greater
0F8D jge jump if greater or equal
0F8C  jnge  jump if not greater or equal
0F8C    jl  jump if less
0F8D  jnl  jump if not less
0F8E  jle jump if less or equal
0F8F jnle jump if not less or equal

 

VI. Buahhh….ich sitze hier schon seit 4 ½ Stunden und tue mein bestes um Newbies zu helfen. Ich weiß nicht ob meine Arbeit irgendwie von irgendjemandem gewürdigt wird, deshalb bitte ich euch: Seid keine Lamer und schreibt mir ob euch mein (erstes!) Tutor gefallen hat! Ich bitte auch um (konstruktive!) Kritik. Soll ich näxtes mal so eine art Troubleshooting machen? Oder etwas übers Cracken allgemein schreiben? Oder ein Cracker-Tool erklären? Also wenn dir das Stück Text geholfen hat oder es dir irgendwie gefallen hat: Schreibe mir einfach ein paar Sätze! Den ohne Resonanz wird es kein zweites Tutor geben!

 

molotover@t-online.de

ICQ# 115025898

P.S.: Für alle Lamer: Im Ordner Crack habe ich ein Compiler beigelegt! Wenn ihr also den Crack mit meiner Hilfe nicht hinbekommen habt, (UNMÖGLICH!!! *g*) kopiert ihr den Compiler einfach ins Jagged Alliance Verzeichnis und führt ihn aus. Dann ist die exe auch gecrackt!