Hallo !

Dieses Tut stammt von WKz_Daedalus und ist fr absolutete Anfnger gedacht!
Bildet euch blo nichts drauf ein wenn ihr das hier gecrackt habt !
Ich hab ein xtra-leichtes Crackme (crackme_cdproc.exe) hierfr geschrieben.
Es sucht alle CD-Drives und berprft sie dann auf den Namen der CD.

Was brauchen wir ?

- WinDasm 8.9  		( www.Crackstore.com )
- Hiew 2.54    		( www.Crackstore.com )
- crackme_cdproc.exe    ( www.geocities.com/Wkz) - ein bisschen Werbung muss sein ;
- Assemblerkenntnisse   ( nicht unbedingt soooo wichtig )

Zuerst mal startest du mein Crackme und was stellst du fest ?
Genau : Falsche CD !
Also : Datei mit WinDasm laden.
Du siehst jetzt so eine komische Aneinandereiung von Zeichen -- Sowas nennt man Assembler ;) 
Jetz clickst du auf den bunten Button mit der Aufschrift "Imp Fn".
Erinnerst du dich noch an die Fehlermeldung ? Die war in so'nen komischen kleinen Kstchen, das man auch Messagebox nennt.
Die MessageBox ist ein sogenannter API, eine Windows-interne Funktion um Win-Programmieren die Arbeit zu erleichtern.
Unter Imp Fn findest du eine Liste aller APIs die benutzt werden.
Da Ich mein Prog aber in VB geschrieben habe, heit der API nicht MessageboxA (wie normal), sondern rtcMsgBox, macht aber das gleiche.
Wenn du auf rctMsgBox clickst solltest du an dieser Stelle landen :

...
* Reference To: MSVBVM60.__vbaVarDup, Ord:0000h
                                  |
:004011B2 FF25B4104000            Jmp dword ptr [004010B4]

* Reference To: MSVBVM60.rtcMsgBox, Ord:0253h
                                  |
:004011B8 FF2538104000            Jmp dword ptr [00401038]

* Reference To: MSVBVM60.__vbaFreeVar, Ord:0000h
                                  |
:004011BE FF2508104000            Jmp dword ptr [00401008]

* Reference To: MSVBVM60.rtcLeftCharVar, Ord:0269h
...

Dies ist der Teil in dem VB alle APIs deklariert ( zu Deutsch : Fr uns unwichtig )
Also noch mal Drauf clicken und dann sind wir hir ( nach ein bisschen hochscrollen )  :

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00402570(C), :00402691(C)						'Von diesen beiden Stellen wird
|     									'die Fehlermeldung aufgerufen		
:004026F6 B904000280              mov ecx, 80020004
:004026FB 894D80                  mov dword ptr [ebp-80], ecx
:004026FE B80A000000              mov eax, 0000000A
:00402703 898578FFFFFF            mov dword ptr [ebp+FFFFFF78], eax
:00402709 894D90                  mov dword ptr [ebp-70], ecx
:0040270C 894588                  mov dword ptr [ebp-78], eax
:0040270F C78560FFFFFF70204000    mov dword ptr [ebp+FFFFFF60], 00402070
:00402719 BF08000000              mov edi, 00000008
:0040271E 89BD58FFFFFF            mov dword ptr [ebp+FFFFFF58], edi
:00402724 8D9558FFFFFF            lea edx, dword ptr [ebp+FFFFFF58]
:0040272A 8D4D98                  lea ecx, dword ptr [ebp-68]

* Reference To: MSVBVM60.__vbaVarDup, Ord:0000h
                                  |
:0040272D 8B35B4104000            mov esi, dword ptr [004010B4]
:00402733 FFD6                    call esi
:00402735 C78570FFFFFF24204000    mov dword ptr [ebp+FFFFFF70], 00402024
:0040273F 89BD68FFFFFF            mov dword ptr [ebp+FFFFFF68], edi
:00402745 8D9568FFFFFF            lea edx, dword ptr [ebp+FFFFFF68]
:0040274B 8D4DA8                  lea ecx, dword ptr [ebp-58]
:0040274E FFD6                    call esi
:00402750 8D8D78FFFFFF            lea ecx, dword ptr [ebp+FFFFFF78]
:00402756 51                      push ecx
:00402757 8D5588                  lea edx, dword ptr [ebp-78]
:0040275A 52                      push edx
:0040275B 8D4598                  lea eax, dword ptr [ebp-68]
:0040275E 50                      push eax				' Hier bergibt der Prog den Text
:0040275F 6A00                    push 00000000				' fr unsere MessageBox	
:00402761 8D4DA8                  lea ecx, dword ptr [ebp-58]
:00402764 51                      push ecx

* Reference To: MSVBVM60.rtcMsgBox, Ord:0253h
                                  |
:00402765 FF1538104000            Call dword ptr [00401038]		' Unsere MessageBox
:0040276B 8D9578FFFFFF            lea edx, dword ptr [ebp+FFFFFF78]
:00402771 52                      push edx
:00402772 8D4588                  lea eax, dword ptr [ebp-78]
:00402775 50                      push eax
:00402776 8D4D98                  lea ecx, dword ptr [ebp-68]
:00402779 51                      push ecx
:0040277A 8D55A8                  lea edx, dword ptr [ebp-58]
:0040277D 52                      push edx
:0040277E 6A04                    push 00000004

* Reference To: MSVBVM60.__vbaFreeVarList, Ord:0000h
                                  |
:00402780 FF1514104000            Call dword ptr [00401014]
:00402786 83C414                  add esp, 00000014

* Reference To: MSVBVM60.__vbaEnd, Ord:0000h
                                  |
:00402789 FF1518104000            Call dword ptr [00401018]

* Referenced by a (U)nconditional or (C)onditional Jump at Address:	' Hier springt das Programm 
									' hin wenn die CD richtig ist
|:004026F0(C)
|

* Reference To: MSVBVM60.__vbaExitProc, Ord:0000h

Die Fehlermeldung wird von 2 Stellen aus aufgerufen :
00402570 und 00402691

Click jetzt mal auf cd Loc und tip 402570 ein.

Jetzt msstest du hier sein :

* Reference To: MSVBVM60.__vbaStrCmp, Ord:0000h			' Der Prog Vergleicht 2 Strings
                                  |				' --> Name der CD im Drive und Name der Richtigen
:00402555 FF1554104000            Call dword ptr [00401054]
:0040255B 8BF8                    mov edi, eax
:0040255D F7DF                    neg edi
:0040255F 1BFF                    sbb edi, edi
:00402561 47                      inc edi
:00402562 F7DF                    neg edi
:00402564 8D4DC4                  lea ecx, dword ptr [ebp-3C]

* Reference To: MSVBVM60.__vbaFreeStr, Ord:0000h
                                  |
:00402567 FF15D0104000            Call dword ptr [004010D0]
:0040256D 663BFB                  cmp di, bx
:00402570 0F8580010000            jne 004026F6	<-		' Springt zur MessageBox wenn der Name Falsch ist
:00402576 6A0C                    push 0000000C	 |
						 |-<  Vergleiche Name(OrginalCD) mit Name(CD im Drive)
						      Wenn Nicht gleich -> Spring zu Fehlermeldung
						      Wenn gleich -> mache weiter im Code

...								' Ne Menge Code der fr uns aber unwichtig ist

* Reference To: MSVBVM60.__vbaStrCmp, Ord:0000h
                                  |
:00402689 FF1554104000            Call dword ptr [00401054]
:0040268F 85C0                    test eax, eax
:00402691 7563                    jne 004026F6			' Hier ist wieder der gleiche Vergleich wie oben
:00402693 8B06                    mov eax, dword ptr [esi]
:00402695 8D4DC4                  lea ecx, dword ptr [ebp-3C]
:00402698 51                      push ecx
:00402699 56                      push esi

...

--> hier kommt das wohin wir wollen

also: wir mssen das Programm davon abhalten vorher wegzujumpen.
Dafr gibst es 2 Wege :
1. Jumps einfach umkehren  Nachteil : Mit der CD gehst nich
2. Jumps so ndern das man nie bzw. immer jumpt

Wir nehmen den zweiten Weg :
Klick auf unsere Jumps und lies in der Statusleiste die Offsetz ab. 
Mssten 2570 und 2691 sein ( das h kann weg, is nur fr Hexadezimal).
Nun ffnest du die Datei mit Hiew.
Drck 2mal F4. 
Nun msstest du das Gleiche sehen wie in WinDasm nur eben unbersichtlicher.
Drck F5 und gib 2570 ein.
Jetzt siehst du denn Hexadezimal Code.
Drcke F5 und berschreibe die ganze Zeile mit 90 bis das so aussieht :
90 
90
90
90
90
90
6A0C

Achtung : du musst 6 * 90 raushaben weil ja vorher auch 6 * 2 Buchstaben dastanden !!! 
Jetzt musst du noch den anderen Jump verndern. Das sollte dann so aussehen :
90
90
80B6

Geschafft !!! Starte nun und freu dich ber deinen ersten ( sehr einfachen ) Crack !

Ein Paar Tipz :

- lad dir Tutz bis zum gehtnichmehr runter !
- Wenn du mal anfngst was zu Cracken, gib erst nach mindestens 10 Stunden auf !
- Besorg dir ein paar Cracking-Progz ( SoftIce, PatchFX ) !
- Lern Programmieren (Visual Basic oder Visual C++) !
- Probiere Assembler zu verstehen !
- Sicherheitskopie nie Vergessen !
- Schreib unter deine Cracks nie deinen richtigen Namen ! ( So'ne Spinner gibst tatschlich ! ) 
- Wenn du mal ein guter Cracker wirst, schreib Tutz !
- Meld dich mal bei mir ,wenn du Hilfe brauchst !
  ( oder noch besser bei Matrix [ der wrid sich freuen ] : wkz_the_matrix@gmx.net   

Wenn ihr Vorschlge fr neue Tutz oder Kritk habt mailt mir:

		WKz_Daedalus@gmx.net
		WWW.GEOCITIES.COM/winkillerz

Greetz :
		Alle WKz Memberz 
		r!sc
		DecOde12
		Black Check
		sn00pee
		gonzo 
		Xcrk
		Laxity
		Duellist
		ByteBurn