# best viewed with LAXITY NFO-Viewer
  (oder mit dem befehl EDIT.EXE in der Dos-Box)  

             ͻ
                                          
              ˻             ɻ  ɻ 
              ι             ̹ μ 
                ʼ ˻ ɻ ɻ μ  
              ʼ   ι μ λ  
              ˻ ι ʼ  ̹ λ 
              ʼ ʼ ȼ    ȼ  ȼ 
                                          
             ͼ
              


                   ͻ
                   proudly presents:
                   ͹
                   Zork's Tutorial 3
                      4 beginners   
                   ͼ

                                            
     

I)   Vorwort

II)  Bentigte Toolz

III) Was wir machen werden

IV)  Let's crack


I) Vorwort:

Herzlich willkommen zu meinen dritten Cracking-Tutorial.
Meine Name ist Zork und ich bin ein Neuer Trial Member bei Fractus 99.
Dieses Tutor ist wieder einmal zum cracken mit dem W32dasm geschrieben.
Erst mal mchte ich mich recht herzlich fr die positive Resonanz auf meine beiden ersten
Tutorials bedanken. Wie es scheint gefllt den Meisten mein "tUtOrIaL-sTyLe".
Als positiv, wurden im Allgemeinen, die anschauliche Erklrung (...klick...) und die 
ASCII-Pics erwhnt. Naja genug gelabert!!!
Ich hoffe auf jeden Fall, dass dieses Tutorial wie immer leicht zu Verstehen ist und euch 
etwas helfen wird!!!

II) Bentigte Toolz:

Dissasambler: am besten W32dasm v8.9 (ltere Version geht auch) 
Hexeditor:    am besten Hacker's View v.6.16 (ein genialer Hexeditor mit ASSEMBLER-Funktion)

Diese beiden Tools gibt's unter http://www.crackstore.com

Ziel Objekt: Monopoly v1.0 *German*

Infos zu diesem Game gibt's unter http://www.monopoly.de

III) Was wir machen werden

Fr mein drittes Tutorial nehmen wir uns das Spiel Monopoly v1.0 *German* vor.
Das Spiel lsst sich nur mit CD starten. :-((((Das httet ihr nicht gedacht, oder?)
=> darum cracken wir ja den scheiss und ndern das Game so, dass man keine CD mehr braucht!!!

IV) Let's crack

Zuerst starten wir das tolle Spiel Monopoly v1.0 *German* ohne die CD im LAufwerk zu haben.
...ratter...
...ratter...
Pltzlich erscheint folgendes Dialog Fenster:

 Ŀ
  Monopoly                         X 
 Ĵ
    Bitte legen Sie die CD-ROM ein.     <= nix gibt's... das machen wir  
                                           bestimmt nicht...
            Ŀ               
               OK                   
                           
                                      
 
...Ahhhhhhhhhh...
Die Fehlermeldung merken wir uns: "Bitte legen Sie die CD-ROM ein."
Klickt nun auf OK...
...klick...
...das Programm ist nun beendet...

Als erstes erstellt ihr mal eine Kopie von der "monopoly.exe", und nennt sie zum Beispiel in monopoly_cracked.exe.
Die Kopie der Datei ladet ihr nun in den W32dasm.
Wenn der W32dasm fertig ist habt ihr einen netten Code vor euch.
Jetzt ffnet ihr die "StringDataReferences" und sucht mal nach "Bitte legen Sie die CD-ROM ein."
Yahoooooo, das ist die Reference!!!
Ein Doppelklick darauf und wir landen an folgender Stelle im Code....

:0049E408 84C0                    test al, al                        <=          Ahhhhhh hier wird was getestet....
:0049E40A 0F8587000000            jne 0049E497                       <--------   Wenn nicht gleich, dann springe zu "Du-Hast-Die-Cd-Eingelegt" 
                                                                             |
* Possible StringData Ref from Data Obj ->"Please insert CD-ROM."            |
                                  |                                          |
:0049E410 BE940F4F00              mov esi, 004F0F94                          |
                                                                             |
* Reference To: KERNEL32.GetUserDefaultLangID, Ord:014Ah                     | <= Hier wird die Sprache des "Benutzer Systems"
                                  |                                          |    (Hat nix mit dem CD-Check zu tun...Es soll nur zum besseren
:0049E415 FF1544524C00            Call dword ptr [004C5244]                  |     Assembler Verstndnis beitragen ;-))))))
:0049E41B 25FF030000              and eax, 000003FF                          |
:0049E420 663D0C00                cmp ax, 000C                               |   <= ax wird mit 000C verglichen...Hmmmm
:0049E424 7505                    jne 0049E42B <=============================|== <= wenn es nicht gleich ist berprfe ob's deutsch ist ;-)
                                                                             | |
* Possible StringData Ref from Data Obj ->"Veuillez ins"                     | | <= sonst wirf eine franzsische Fehlermeldung aus!
                                  |                                          | |
:0049E426 BE780F4F00              mov esi, 004F0F78                          | |
                                                                             | |
* Referenced by a (U)nconditional or (C)onditional Jump at Address:          | |
|:0049E424(C)                                                                | |
|                                                                            | |
:0049E42B 663D0700                cmp ax, 0007 <=============================|==
:0049E42F 7505                    jne 0049E436 <-----------------------------|--
                                                                             | |
* Possible StringData Ref from Data Obj ->"Bitte legen Sie die CD-ROM ein."  | |
                                  |                                          | |
:0049E431 BE580F4F00              mov esi, 004F0F58                          | | 
                                                                             | |
* Referenced by a (U)nconditional or (C)onditional Jump at Address:          | |
|:0049E42F(C)                                                                | |
|                                                                            | |
:0049E436 663D0A00                cmp ax, 000A <-----------------------------|--
:0049E43A 7505                    jne 0049E441 <=============================|==
                                                                             | |
* Possible StringData Ref from Data Obj ->"Por favor, introduzca el CD-ROM." | |
                                  |                                          | |
:0049E43C BE340F4F00              mov esi, 004F0F34                          | |
                                                                             | | 
* Referenced by a (U)nconditional or (C)onditional Jump at Address:          | |
|:0049E43A(C)                                                                | |
|                                                                            | |
:0049E441 663D1300                cmp ax, 0013 <=============================|==
:0049E445 7505                    jne 0049E44C <-----------------------------|--
                                                                             | |
* Possible StringData Ref from Data Obj ->"Plaats a.u.b. de CD-ROM."         | |
                                  |                                          | |
:0049E447 BE180F4F00              mov esi, 004F0F18                          | |
                                                                             | |
* Referenced by a (U)nconditional or (C)onditional Jump at Address:          | |
|:0049E445(C)                                                                | |
|                                                                            | |
:0049E44C 663D1D00                cmp ax, 001D <-----------------------------|--
:0049E450 7505                    jne 0049E457 <=============================|==
                                                                             | |
* Possible StringData Ref from Data Obj ->"S"                                | |
                                  |                                          | |
:0049E452 BE080F4F00              mov esi, 004F0F08                          | |
                                                                             | |
* Referenced by a (U)nconditional or (C)onditional Jump at Address:          | |
|:0049E450(C)                                                                | |
|                                                                            | |
:0049E457 663D0B00                cmp ax, 000B <=============================|==
:0049E45B 7505                    jne 0049E462 <-----------------------------|--
                                                                             | |
* Possible StringData Ref from Data Obj ->"Aseta CD-ROM CD-ROM-asemaan."     | |
                                  |                                          | |
:0049E45D BEE80E4F00              mov esi, 004F0EE8                          | |
                                                                             | |
* Referenced by a (U)nconditional or (C)onditional Jump at Address:          | |
|:0049E45B(C)                                                                | |
|                                                                            | |
:0049E462 663D0600                cmp ax, 0006 <-----------------------------|--
:0049E466 7505                    jne 0049E46D <=============================|==
                                                                             | |
* Possible StringData Ref from Data Obj ->"Inds"                             | |
                                  |                                          | |
:0049E468 BED80E4F00              mov esi, 004F0ED8                          | |
                                                                             | |
* Referenced by a (U)nconditional or (C)onditional Jump at Address:          | |
|:0049E466(C)                                                                | |
|                                                                            | |
:0049E46D 663D1400                cmp ax, 0014 <=============================|==
:0049E471 7505                    jne 0049E478 <-----------------------------|--
                                                                             | |
* Possible StringData Ref from Data Obj ->"Vennligst sett in CD-ROM."        | |
                                  |                                          | |
:0049E473 BEBC0E4F00              mov esi, 004F0EBC                          | |
                                                                             | |
* Referenced by a (U)nconditional or (C)onditional Jump at Address:          | |
|:0049E471(C)                                                                | |
|                                                                            | |
:0049E478 8B0DB05B6400            mov ecx, dword ptr [00645BB0] <------------|--
:0049E47E 6A00                    push 00000000                              |
                                                                             |
* Possible StringData Ref from Data Obj ->"Monopoly"                         |
                                  |                                          |
:0049E480 68B00E4F00              push 004F0EB0                              |
:0049E485 56                      push esi                                   |
:0049E486 51                      push ecx                                   |
                                                                             |
* Reference To: USER32.MessageBoxA, Ord:0195h                                |
                                  |                                          |
:0049E487 FF1584534C00            Call dword ptr [004C5384]                  |
:0049E48D 6A0A                    push 0000000A                              |
:0049E48F E87CA5FDFF              call 00478A10                              |
:0049E494 83C404                  add esp, 00000004                          |
                                                                             |
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:        |
|:0049E314(C), :0049E3FD(C), :0049E40A(C)                                    |
|                                                                            |
:0049E497 5F                      pop edi    <===============================|
:0049E498 5E                      pop esi                                     
:0049E499 5D                      pop ebp                                     
:0049E49A 5B                      pop ebx                                     
:0049E49B 81C468070000            add esp, 00000768
:0049E4A1 C3                      ret


Toll das is ja ganz easy... wir machen ganz einfach aus:   
"jne 0049E497" (Gehe zu guter User wenn er die Monopoly CD eingelegt hat)
"jmp 0049E497" (Gehe zu guter User wenn er die Monopoly CD eingelegt hat 
                              ODER wenn er KEINE Monopoly CD eingelegt hat)
       => Sprich gehe IMMER zu Guter User!!!!

nochmals zum besseren Verstndnis:
jne bedeutet "Jump if not Equal"        <= wird oft verwendet!!!
jmp bedeutet "Jump" (ohne Bedingung) => Springe egal ob "Gleich" oder "nicht Gleich" 
                                        (besser kann man's halt nicht sagen ;-)  


Um dies zu ndern klicken wir mit der Maus auf diese Zeile:


:0049E40A 0F8587000000            jne 0049E497   


dann sehen wir in der untersten Zeile des W32dasm v8.9 folgendes:


Line:262311 Pg 5246 and 5247 of 6763 Code Data @:0049E40A @Offset 0009D80Ah in File:monopoly_cracked.exe


von diesem ganzen kram interessiert uns nur der Offset: 9D80A
(das kleine h und die Nullen braucht ihr euch nicht zu merken. h steht nur fr HEX)
Ladet jetzt die Kopie in Hacker's View...
drckt dort F4 um den Mode zu ndern...
drckt bei select Mode auf Decode...
drckt nun F5 und gebt den Offset ein: 9D80A
drckt nun F3 um den Code zu editieren
drckt F2 um in Assembler eingeben zu knnen
ndert nun "jne 0049E497" zu "jmp 0049E497" => Enter
Escape und schliesslich F9 um zu sichern!!!!
Jetz noch Escape drcken um Hacker's View zu beenden!!!!

(sorry fr die vielen "drckt's" es geht halt nicht anders!!! ;-)

Startet nun monopoly_cracked.exe ohne die CD-ROM eizulegen.
Es wird ohne Fehlermeldung starten und funktionieren!!!
(Natrlich nur wenn ihr es VOLL Installiert habt;-)))))

Ihr habt es geschafft, Ihr habt den CD-Check gekillt!
Das Spiel ist nun gEcRaCkT!!!

Tja, das war nun mein drittes Tutor. Ich hoffe ihr habt mal wieder was daraus gelernt.
Den Rest entnehmt ihr bitte der fRACTUs`99.nfo die dem Tutor beiliegt.

GrEeTz FlY oUt To: AlL gErMaN cRaCkInG-gRoUpS, keep on cracking, Nexus, Cyrus, El Loco, Lane B,
                   Carhart, Mirco, Trff, Schneck, Schorsch, tIMELESS, ci[ero, Maestro, jarek, SnowSpinner 
                   DeMOLuS, Haplo, DOC T., sAPHiR and FacEmaN (wElCoMe To ThE tRiBe)
                   and 2 all the people that know me...

remember: "a bad protection is almost the same like NO protection"








 



