Mai 1999
|
Da Woolf|4V proudly presents...
|
Anfänger
|
a cracking tutorial on...
|
HOW TO CRACK Recover98-demo
V3.0
|
|
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)