Mai 1999
Da Woolf|4V proudly presents...
Anfänger
a cracking tutorial on...
 
HOW TO CRACK Recover98-demo V3.0
 

Programmname: Recover98

Programmart: Dateiwiederherstellung

Wo im Internet: http://www.convar.com

 

Benötigte Tools:

W32Dasm - Disassembler

Hiew 6.04 - Der beste Hex-Editor seiner Art

 


 

Vorwort

Servus mal wieder !

"Recover98 ? Was isn' das ?" Das werden jetzt die meisten von Euch denken, und warum zum Teufel hat der das Teil ??

Kleine Vorgeschichte: Letztens hat ein Freund von mir 'ne kleine Netzwerk-Session organisiert ! Unter anderem wurde SiN, Requiem, Grand Theft Auto, Half-Life Monster Truck Madness 2 und Delta Force gezockt, dass tut hier aber nichts zur Sache. Auf jeden Fall hatte mein Kumpel die geile Idee seine alte IBM Festplatte mit der seines Vaters auszutauschen (er hätte dann zwei Maxtor im Rechner !). Also sind wir an den Bürorechner und haben die IBM reingehängt, um die Daten von der Maxtor zu sichern. Ich wollte nur mal eben eine Festplatte auf der IBM formatieren um Platz zu schaffen, was ich in meiner Dusseligkeit aber total verbockt ! Ich hab' die Festplatte mit allen Daten seines Vaters formatiert !!!!! Erst mal abgecheckt ob's nicht doch die falsche Platte war....nö, fuck !! Na ja ! Wir haben's mit normalen Mitteln nicht hingekriegt. also zurück zur Session und irgendwann mal pennen gegangen ! Am nächsten Tag noch'n Weilchen gespielt und dann mal nach Hause. Ich gleich ins Netz und nach Dateiwiederherstellungstools gesucht. Mein Daddy hatte aber schon lange was gefunden. Das Teil ist zwar verdammt gut hat aber einen kleinen Schönheitsfehler: Es kann nur 3 Dateien wiederherstellen ! Für einen Cracker sollte dass aber kein Problem darstellen.

Let's crack !

Als erstes wollen wir uns das Proggie mal anschauen ! Startet das Teil mal und schauts Euch an: "This is a demo version good for three copies only..." Aha ! Merkt Euch den Text gut ! Nachdem wir uns zwei Kopien der Recover98-demo.exe gemacht haben, laden wir eine (1.exe) in den W32Dasm und warten ein bisschen (oderauch länger).

Jetzt sollte er fertig sein ;-) Könnt Ihr Euch noch an die Fehlermeldung erinnern ? Sucht sie mal in den "String Data References", Ihr werdet sie nicht finden !! Hier müssen wir den Text suchen lassen ! Ruft die Textsuche mit dem Taschenlampen-Icon auf und sucht nach "This is a demo", das reicht schon. Ihr solltet ziemlich schnell fündig werden ! Das ist aber nicht was wir suchen ! Sucht noch 5 mal weiter bis Ihr hier seid:

Name: DialogID_00D8, # of Controls=003, Caption:"Recover98", ClassName:""

     001 - ControlID:0001, Control Class:"BUTTON" Control Text:"OK" 

     002 - ControlID:FFFF, Control Class:"STATIC" Control Text:"" 

     003 - ControlID:FFFF, Control Class:"STATIC" Control Text:"This is a demo version good

                                          for three copies only.. " 

Hier wird uns gezeigt, welche ID die Box der Fehlermeldung hat. sucht jetzt also nach "DialogID_00D8". Ihr solltet nun hier landen:

* Referenced by a CALL at Addresses:

|:00402573   , :0040F447   

|

:0040EEC0 64A100000000            mov eax, dword ptr fs:[00000000]

:0040EEC6 55                      push ebp

:0040EEC7 8BEC                    mov ebp, esp



* Possible Reference to Dialog: DialogID_008A, CONTROL_ID:00FF, ""

                                  |

:0040EEC9 6AFF                    push FFFFFFFF

:0040EECB 6816EF4000              push 0040EF16

:0040EED0 50                      push eax

:0040EED1 64892500000000          mov dword ptr fs:[00000000], esp

:0040EED8 8B4508                  mov eax, dword ptr [ebp+08]

:0040EEDB 83EC04                  sub esp, 00000004

:0040EEDE 56                      push esi

:0040EEDF 50                      push eax

:0040EEE0 894DF0                  mov dword ptr [ebp-10], ecx

:0040EEE3 8BF1                    mov esi, ecx



* Possible Reference to Dialog: DialogID_00D8 

                                  |

:0040EEE5 68D8000000              push 000000D8

:0040EEEA E847E70100              call 0042D636

:0040EEEF C745FC00000000          mov [ebp-04], 00000000

:0040EEF6 8BC6                    mov eax, esi

:0040EEF8 C70680B04400            mov dword ptr [esi], 0044B080

:0040EEFE C745FCFFFFFFFF          mov [ebp-04], FFFFFFFF

:0040EF05 8B4DF4                  mov ecx, dword ptr [ebp-0C]

:0040EF08 5E                      pop esi

:0040EF09 64890D00000000          mov dword ptr fs:[00000000], ecx

:0040EF10 8BE5                    mov esp, ebp

:0040EF12 5D                      pop ebp

:0040EF13 C20400                  ret 0004

Ihr steht mit Eurem Balken jetzt auf "* Possible Reference to Dialog: DialogID_00D8" stehen. Hier wird die Dialog-Box aufgerufen. Doch von welcher Funktion ? Wir scrollen ein bißchen weiter nach oben bis hier hin: "* Referenced by a CALL at Addresses: |:00402573 , :0040F447"

Das bedeutet, das die Dialog-Box durch den Call bei der Adresse 00402573 und 0040F447 aufgerufen wird. Durch den Button "Goto Code Location" und die Eingabe der ersten Adresse sollten wir hier landen:

* Referenced by a (U)nconditional or (C)onditional Jump at Address:

|:004024B8(C)

|

:00402556 8B81B0000000            mov eax, dword ptr [ecx+000000B0]

:0040255C 83785000                cmp dword ptr [eax+50], 00000000

:00402560 755C                    jne 004025BE

:00402562 833DAC80450003          cmp dword ptr [004580AC], 00000003

:00402569 7C53                    jl 004025BE

:0040256B 6A00                    push 00000000

:0040256D 8D8D68FFFFFF            lea ecx, dword ptr [ebp+FFFFFF68]

:00402573 E848C90000              call 0040EEC0

So, ich muss jetzt mal für'n paar Stunden in die Kneipe, mach aber später weiter ! Nicht weglaufen !!!!! :-)

.

.

.

Wieder da !!! Nach ca. dreieinhalb Stunden.

Ihr seid jetzt also mit Eurem Balken in W32Dasm auf dieser Stelle:    :00402573 E848C90000              call 0040EEC0

Von hier aus wird also die Routine zum anzeigen der Box aufgerufen. Aber irgendwo muss doch auch verglichen werden, ob ich schon drei bzw. mehr Dateien hergestellt habe ! Seht Ihr die Zeile mit dem "cmp dword ptr [004580AC], 00000003" ??? Vergleiche etwas aus dem Speicher mit 3 !!!Das könnte es doch sein oder !!!

Und was steht drunter ??? jl 004025BE !!! Jump if low, also Springe wenn niedriger ! Das ist unser Ansatzpunkt ! Es wird im Speicher die Anzahl der wiederhergestellten Dateien gesetzt, dann mit 3 verglichen und entschieden, ob das Proggie nochmals eine Datei herstellen kann (dann springt es zu 004025BE) oder ob diese Routine abgebrochen und die Fehlermeldung ausgegeben wird.

Ladet also die Original-Exe in den Hacker's View, drückt F4 und wählt "Decode" aus. Danach drückt Ihr F5 und gebt den Offset ein zu dem wir springen wollen. Ihr müsst hierzu den Balken in W32Dasm über die Sprunganweisung bewegen also den jl. In der unteren Leiste seht Ihr dann @Offset 00001969h. Gebt jetzt also den Offset ein, wobei Ihr die ersten vier Nullen weglassen könnt. Das kleine h müsst Ihr auch nicht eingeben, es steht für Hex.

Ihr seid jetzt auf der Sprunganweisung ! Wir wollen jetzt das Programm so verändern, daß es an dieser Stelle immer springt ! Springe bedeutet in Hex EB.

Also, F3 drücken, um in den Editiermodus zu gelangen und 7C53 mit EB53 überschreiben.

Mit F9 abspeichern und F10 das Programm verlassen.Wenn Ihr jetzt Recover98 startet, kommt am Anfang zwar noch immer die Fehlermeldung, jedoch innerhalb des Programmes nicht mehr!

FERTIG !!! :-)

Tja, das wars dann mal wieder ! Das Ziel gecrackt und hoffentlich wieder einem Newbie geholfen ! Wenn Euch jetzt noch der NAG am anfang stört, könnt Ihr den ja auch wegcracken, und ein neues Tutorial schreiben !!

 

Greetz fly out to:

Bond|4v, Kenny|4v, Dracs|4v, Zatan|4v and all other members of 4VOICE, (°)Blade, (°)Predator, Weazel and all I forgot !

Ganz besonders Grüße ich meinen Kumpel Conqueror, der hoffentlich keinen Anschiß von seinem Daddy bekommen hat ! (Sorry !)

Sorry auch an Convar, die mit Recovery98 das Leben von mir und meinem Kumpel Conqueror gerettet haben ! Sorry, daß ich's cracken musst, aber ich geb' nicht'n haufen Geld aus, nur weil ich das Proggie vielleicht einmal brauche ! Sorry !!!

 

Keep on cr@cking !!!!! (Da Woolf|4v - 4/05/1999)