Hallo erstmal, da in letzter Zeit ziemlich viele Tutorials erschienen sind, dachte ich mir das ich auch mal eins schreibe. Erstmal SORRY für meine Rechtschreib-Grammatikfehler und meine Ausdrucksweise . Dieses Tutor richtet sich in erster Linie an absolute Anfänger, also wenn ihr das hier geschafft habt seid ihr immer noch ziemlich Anfänger aber hoffentlich schon ein bißchen schlauer als vorher.

So das wärs !

Wir brauchen :

1. W32DSM und einen Hexeditor gibts hier

2.Zettel, Stift, 10min. Zeit

3. last but not least, ein geeignetes Opfer, ich habe mich für Anno1602 entschieden (ist zwar nicht mehr ganz frisch aber dürfte wohl jeder drankommen und ist schön leicht zu cracken) !

 

So dann wollen wir mal anfangen.

Als erstes gucken wir uns mal die Fehlermeldung an die das Programm ausspuckt wenn wir es ohne CD starten.

2.gif (2486 Byte)

Dann disassemblen wir Anno mal, indem wir W32DSM starten, auf DISASSEMBLER und dann auf Open File to Disassembel klicken dort wählen wir die Kopie

von der Anno1602.exe (die wir vorher erstellt haben) und drücken auf OK.

Nach einiger Zeit seht ihr entweder ein paar komische Zeichen(Wingdings) oder normale Schrift.Wenn ihr nur Wingdings seht dann müßt ihr erst eure Schriftart auf

eine geeignete gut lesbare Schrift stellen.

Dazu klicken wir auf DISASSEMBLER auf FONT und dann auf SELECT FONT dort wählen wir eine gut lesbare Schrift aus und drücken OK, nicht vergessen auf

DISASSEMBLER auf FONT und dann auf SAVE DEFAULT FONT zu klicken da W32DSM sich die Schriftart sonst nicht merkt.

So jetzt können wir den ASM Code der Anno exe erkennen.

Dann klicken wir auf String Data References

1.gif (29676 Byte)

Dann sehen wir alle String Data References der Datei.Darin suchen wir nach der Fehlermeldung "Bitte legen sie die Original Anno 1602 CD ein!"

3.gif (6992 Byte)

Da klicken wir zweimal drauf, und schon landen wir an der Stelle im Code wo gecheckt wird ob die CD im Laufwerk ist.

4.gif (12157 Byte)

Wir scrollen ein bißchen nach oben um die Stelle zu finden wo das Programm zwischen CD-drin und CD-nicht-drin unterscheidet und zur Fehlermeldung

springt.

5.gif (12691 Byte)

 

Da steht jetzt JNE, das heißt Jump if not equal (spring wenn nicht erfüllt), das bezieht sich auf den Test vor dem Jump.

Er testet also ob dir CD im Laufwerk ist und entscheidet dann ob er zur Fehlermeldung springt oder nicht.

Wenn wir also den Jump so verändern, das er auf jeden Fall springt (JMP=Jump) läuft es ohne CD.

Das müssen wir doch gleich mal ausprobieren, ihr fragt wie na ganz einfach wir gucken an welchem Offset der Datei der Jump steht

und verändern ihn mit einem Hexeditor.Das Offset des jeweils angewählten Befehls sehen wir unten in der Leiste von W32DSM.

6.gif (31157 Byte)

In diesem Fall "91BC9"(das "h" dahinter steht nur für Hex und ist sonst uninteressant).Das notieren wir uns doch gleich einmal.

Nun öffnen wir unseren Hexeditor und geben bei GOTO OFFSET die Adresse 91BC9 ein.

Nun steht unser Cursor auf der Zahl 75 (das ist im Hexadezimalsystem und steht für JNE dort könnte auch 0085 stehen das bedeutet das gleiche)

7.gif (12027 Byte)

Wenn wir diese 75 nun in ein EB (steht für JMP=Jump) eintragen spring er auf jeden Fall, egal ob die CD drin ist oder nicht.

Wir schließen W32DSM (weil wir die geänderte Datei sonst nicht speichern können) und speichern die gecrackte Datei unter dem Namen crack.exe .

So dann wollen wir mal schauen ob wir es geschafft haben, wir starten Anno und starten ein Einzelspieler Game, aber was sehen wir da, die nervige

Fehlermeldung ist ja immer noch da ! Egal dann gehen wir noch mal in W32DSM und machen das gleiche wie eben noch mal. Aber nachdem wir den String

geöffnet haben klicken wir noch 2mal drauf und was sehen wir da, es gibt ja 2 Stellen wo geprüft wird ob die CD drin ist (So eine Sauerei).

Dann wiederholen wir das Spielchen von eben noch einmal (siehe oben) nur dieses mal ist es das Offset "91D0B" welches wir genauso verändern wie eben.

Wir speichern die gecrackte Datei und starten Anno, und endlich geht es ohne CD !!!

Das war doch gar nicht so schwer, ihr habt gerade euer erstes Game gecrackt.

Wenn ihr nun noch einen Crack bzw. Patch dafür erstellen wollt den ihr besser verteilen könnt (ist kleiner als Original File) braucht ihr noch ne Patch Engine

am besten saugt ihr euch unsere aLaZoN-Patch-Engine (unter Filez) da solltet ihr jetzt aber alleine hinkriegen.

Wenn euch dieses Tutorial gefallen hat oder ihr noch Fragen habt, mailt an mich !!!

Wenn ich viele Resonanz bekomme schreibe ich vielleicht noch in Tutor  !!!

 

Hier noch eine ASM Tabelle mit zugehörigen HEX- Werten:

JNE Jump if not Equal Springe wenn nicht gleich 75
JE Jump if Equal Springe wenn gleich 74
JMP Jump Springe (Unconditional) EB
JA Jump if above Springe wenn drüber 0F87
JNA Jump if not above Springe wenn nicht drüber 0F86
JAE Jump if above or equal Springe wenn drüber oder gleich 0F83
JNAE Jump if not above or equal Springe wenn nicht drüber oder gleich 0F82
JB Jump if below Springe wenn drunter 0F82
JNB Jump if not below Springe wenn nicht drunter 0F83
JBE Jump if below or equal Springe wenn drunter oder gleich 0F86
JNBE Jump if not below or equal Springe wenn nicht drunter oder gleich 0F87
JG Jump if greater Springe wenn größer 0F8F
JNG Jump if not greater Springe wenn nich größer 0F8E
JGE Jump if greater or equal Springe wenn größer oder gleich 0F8D
JNGE Jump if not greater or equal Springe wenn nicht größer oder gleich 0F8C
JL Jump if Less Springe wenn weniger 0F8C
JLE Jump if Less or equal Springe wenn wniger oder Gleich 0F8D
JNLE Jump if not less or equal Springe wenn nicht weniger oder gleich 0F8E
NOP No Operation Mach nix (win98, hehe) 908F

Die Tabelle ist aus einem Tutorial von PeeGee von der Group laxity ! THANX TO PeeGee !!!