Wie cracke ich
--------------------------

Cracker:  Da Woolf
Programm: Hex Workshop 2.54
Internet: http://www.bpsoft.com

Bentigte Tools: W32Dasm 8.93 (muss nicht die aktuellste Version sein!)
		 Hiew 6.00 (muss nicht die aktuellste Version sein!)

--------------------------

Servus !
Mein drittes Tutorial dreht sich diesmal um den Hex Workshop. Viele werden ihn kennen
von den Cover-CD's der Gamestar oder der PC-Action. Ich mag das Teil einfach, denn es
ist der beste Hex-Editor unter Windows !!!


1. Programmanalyse
------------------

Startet das Proggie und klickt auf den Menpunkt "Demonstration Version". Nun sollte
ein kleiner Dialog uns zur Eingabe einer Registriernummer eingeben. Dies sollten wir
dann mal tun. Kurz eine Registriernummer ausgedacht und eingegeben - fuck ! Funktioniert
nicht. ;)

2. Das Cracken
--------------

Was schreibt das Teil da: "You have entered an invalid registration number." ???
Das sollte man sich merken. Also schnell im Hirn gespeichert oder auf einen Zettel
gekritzelt und aus dem Programm raus.
Jetzt geh'n wir ins Hexworkshop-Verzeichnis und machen uns zwei Kopien von der
"Hworks32.exe". Eine benennen wir um in 1.exe und die andere in Hworks32.ex_ oder so.
W32Dasm aufgerufen und schnell die Datei 1.exe geffnet (Disassembler -> File to Disassemble). Lasst uns mal die "String Data References" durchforsten...nichts !
Auch in den "Dialog References" ist nichts zu finden. Also suchen wir den Text,
den Ihr euch entweder gemerkt oder aufgeschrieben habt, einfach mal. 
Aha ! Erwischt:


Name: DialogID_0075, # of Controls=003, Caption:"Registration Unsuccessful", ClassName:""
     001 - ControlID:FFFF, Control Class:"STATIC" Control Text:"You have enterred an invalid registration number."
     002 - ControlID:FFFF, Control Class:"STATIC" Control Text:"Please confirm you entered a valid registration number or contact BreakPoint S"
     003 - ControlID:0001, Control Class:"BUTTON" Control Text:"&OK"


Jetzt wissen wir also auch welche ID der Dialog hat, der immer hochpopt, wenn wir einen
falschen Code eingeben.
Also schnell nach "DialogID_0075" suchen und wir bekommen folgendes zu sehen:


* Possible Reference to Dialog: DialogID_0075
                                  |
:00409D83 6A75                    push 00000075
:00409D85 8D8D10FFFFFF            lea ecx, dword ptr [ebp+FFFFFF10]
:00409D8B E890F3FFFF              call 00409120


Da uns das hier nicht viel weiterhilft, da nur das Fenster aufgerufen wird, mssen wir
nach dem letzten Vergleich (cmp, jne, je, etc.) suchen. Wir scrollen hoch, und landen
schlielich hier:


* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00409C89(U)
|
:00409C95 837DEC00                cmp dword ptr [ebp-14], 00000000
:00409C99 0F8479000000            je 00409D18


Wollen wir doch mal sehen was passiert wenn wir das "je" in "jne" ndern.
Bewegt den Farbbalken ber ":00409C99 0F8479000000            je 00409D18" und schreibt
Euch die Offset-Adresse rechts unten im Hauptfenster auf (oder merkt sie Euch). 
"Hworks32.exe" einladen in Hiew und in den Decodemode wechseln (F4 -> Decode).
Drckt jetzt F5 und gebt die Offsetadresse ein.


.00409C99: 0F8479000000                 je       .000409D18   -------- (1)


Drckt jetzt F3 und ndert "0F8479000000" in "0F8579000000" um, drckt F9 um zu speichern
und F10 um Hiew zuverlassen.
Startet nun Hex Workshop und gebt eine Fantasienummer ein und drckt "Register"...fuck !
Geht nicht !?
Lscht zuerst mal die vernderte Datei und macht Euch eine neue unvernderte.
Ich hoffe Ihr habt whrend der ganzen Zeit W32Dasm nicht beendet, den jetzt suchen wir
nocheinmal nach "DialogID_0075" (fr alle die beendet habn: Ihr msst jetzt 3 mal suchen !)


* Possible Reference to Dialog: DialogID_0075
                                  |
:00409D83 6A75                    push 00000075
:00409D85 8D8D10FFFFFF            lea ecx, dword ptr [ebp+FFFFFF10]
:00409D8B E890F3FFFF              call 00409120


Da uns das hier wieder nicht viel weiterhilft, da nur das Fenster aufgerufen wird,
mssen wir wieder nach dem letzten Vergleich (cmp, jne, je, etc.) suchen. Wir scrollen hoch,
und landen schlielich hier:


* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00409C89(U)
|
:00409C95 837DEC00                cmp dword ptr [ebp-14], 00000000
:00409C99 0F8479000000            je 00426332


Wollen wir doch mal sehen was passiert wenn wir das "je" in "jne" ndern.
Bewegt den Farbbalken ber ":00409C99 0F8479000000            je 00426332" und schreibt
Euch die Offset-Adresse rechts unten im Hauptfenster auf (oder merkt sie Euch). 
"Hworks32.exe" einladen in Hiew und in den Decodemode wechseln (F4 -> Decode).
Drckt jetzt F5 und gebt die Offsetadresse ein.


.004262B3: 0F8479000000                 je      .000426332   -------- (1)


Drckt jetzt F3 und ndert "0F8479000000" in "0F8579000000" um, drckt F9 um zu speichern
und F10 um Hiew zuverlassen.
Startet nun Hex Workshop und gebt eine Fantasienummer ein und drckt "Register"...geil !
Ihr werdet aufgefordert Euren Namen und den Namen Eurer Firma einzugeben, was wir
natrlich umgehend tun. "OK" drcken und registered !!!


Operation gelungen ! Mein drittes Tutorial wird geschlossen und ich hoffe es hat Euch
Spa gemacht und Ihr habt's kapiert. Fr Fragen knnt Ihr mich wie immer unter meiner
e-mail Adresse (dawoolf@topmail.de) erreichen.
Ich wnsche allen frohe Weihnachten '98 und ein gutes neues Jahr !

Da Woolf, 15-12-1998