Freitag, 14. Juli 2000 //Karlsruhe//
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!
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!
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!