Ŀڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿ

Ŀ

ٳ۰۰۰۰۰۰۰۳
۲۰۲۰۲۰۲۰۲۰۲۰۲۰۲۰
ٳ۲۰۲۰۲۲۰۲۰۲۲۰۲۰۲۰
۲۲۰۲۲۲۰۲۰۲۰۲۰۲۰
ٳ۲۰۲۲۲۰۲۰۲۰۲۰۲۰
۲۰۲۲۰۲۰۲۰۲۰۲۰
ٳ۲۲۰۲۰۲۰۲۲۰۲۰۲۰
۲۰۲۰۲۲۰۲۰۲۲۰۲۰۲۰
ٳ۲۰۲۰۲۰۲۰۲۰۲۰۲۰۲۰۲۰
۰۰۰۰۰۰۰۰۰
ٳ
 
ڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿڿ



Mein erstes Cracking-Tutorial!
Dies ist wirklich sehr, sehr einfach.
Erfahrene Cracker sollten hier nicht mehr weiter lesen.
Aber falls ihr noch nie ein prog gecracked habt dann seid ihr hier absolut richtig.

OK. Crackit.
____________________________________________________________________________________


Progs we need:

-W32dasm 8.x 
-Hexworkshop (Demoversion)Version 2.54 
PatchEngine (muss nicht sein)

Alle eben genannten Warez bekommt ihr unter  www.Crackstore.com
____________________________________________________________________________________


Heute wollen wir im oben aufgefhrten HexWorkshop die Registrierung cracken
Dazu installiert (falls noch nicht geschehen) erstmal den HEXer und Wdasm
WICHTIG!!! 
Legt vor dem Cracken immer eine Sicherheits-Kopie der datei an die ihr cracken wollt. 
(In diesem fall msst ihr ->2<- Sicherheitskopien der HWorks32.exe anlegen,
da wir den Hex noch zum arbeiten brauchen)

Startet jetzt WDasm und ffnet die OriginalDatei HWorks32.exe
Falls ihr beim ersten mal nichts auf dem Bildschirm erkennt so ndert die
Schriftart unter FONTS auf Arial
So jetzt sieht es zwar immer noch verwirrend aus aber immerhin schon etwas klarer  !?!HH!?!
									     
Jetzt startet mal eine von den Kopien des HexWorkshops.
klickt auf "Demonstration Version" oben rechts und schon kommt die Registrierung 
wo man jetzt 0190 222222 eingibt.         	(meine telefonnummer)

Wie nicht anders erwartet kommt nun eine Fehlermeldung "You have entered ..." 

Jetzt schliesst den HEXer und wechselt wieder zu Wdasm.
Sucht jetzt mit "Search" nach "You have entered" 
'ne Zeile darber steht "DialogID_0075"    <-- an dieser Stelle wird der String benutzt
____________________________________________________________________________________

Name: DialogID_0075, # of Controls=003, Caption:"Registration Unsuccessful", ClassName:""
001 - ControlID:FFFF, Control Class:"STATIC" Control Text:"You have entered an invalid 							           registration number." 
____________________________________________________________________________________

Sucht jetzt nach "DialogID_0075"  (natrlich ohne die ")
Geht nochma auf Search da die erste Meldung euch nur reinlegen soll.
____________________________________________________________________________________


* Possible Reference to String Resource ID=00001: "Hex Workshop Version 2.54"
                                  |
:0042639B 6A01                    push 00000001

* Possible Reference to Dialog: DialogID_0075                <--------  Hier seid ihr !!!
                                  |
:0042639D 6A75                    push 00000075
:0042639F 8D8D10FFFFFF            lea ecx, dword ptr [ebp+FFFFFF10]
:004263A5 E8762DFEFF              call 00409120

* Possible Reference to String Resource ID=00001: "Hex Workshop Version 2.54"
____________________________________________________________________________________

Ok lest jetzt den Text nach OBEN 
bis ihr zu 
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
kommt
____________________________________________________________________________________

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004262B3(C)	<-- Von hier wird der Block aufgerufen		<-------  Bis hier
|
:00426332 E869C4FDFF              call 004027A0
:00426337 89850CFFFFFF            mov dword ptr [ebp+FFFFFF0C], eax
:0042633D 8B850CFFFFFF            mov eax, dword ptr [ebp+FFFFFF0C]
:00426343 8B00                    mov eax, dword ptr [eax]
:00426345 898508FFFFFF            mov dword ptr [ebp+FFFFFF08], eax

* Possible Reference to String Resource ID=00001: "Hex Workshop Version 2.54"
                                  |
:0042634B 6A01                    push 00000001
:0042634D 8B8508FFFFFF            mov eax, dword ptr [ebp+FFFFFF08]
:00426353 8B8D0CFFFFFF            mov ecx, dword ptr [ebp+FFFFFF0C]
:00426359 FF9094000000            call dword ptr [eax+00000094]
:0042635F 68D0070000              push 000007D0

* Reference To: KERNEL32.Sleep, Ord:0218h
  ___________________________________________________________________________________

Also geht jetzt zu der Stelle mit "Goto Code Location" zu "004262b3"
Von hier aus wird der ganze Block aufgerufen
 ____________________________________________________________________________________

:004262B3 0F8479000000            je 00426332      < ---- dieser Jump ist unser Ziel        
@Offset 000256b3 (steht ganz unten im W32dasm)
 ____________________________________________________________________________________

kleine Einfhrung in Assembler:
je  = spring wenn etwas richtig ist                  	   (etwas := Flag)

Wir mssen das Programm dazu bringen 
immer dann zu springen wenn die Serial nicht richtig ist
also:
ndern wir SPRINGE WENN RICHTIG in SPRINGE WENN FALSCH
ffnet eine Sicherheitskopie des Hexers und lade eine andere Kopie hinein
geht zur Stelle @Offset 256b3 und ndert 0F84 ..... in 0F85 .... um.
Was 0F85 heisst SPRINGE WENN FALSCH.
(siehe Anhang)
Speicher,schliess alles und fhre die gecrackte Datei aus.
Juchhu
Super
Klasse 
du kannst jede beliebige Serial eingeben. (Ausser die Richtige) :-)

Wenn du willst kannst du noch deinen eigenen Patch kreieren(<-Is das richtig geschrieben???)
mittels Patch-Engine
____________________________________________________________________________________

ANHANG:
Hex:           	 Asm:           	  Bedeutung: 

75 oder 0F85   	 jne           		   jump if not equal  
74 oder 0F84 	 je             	   jump if equal
77 oder 0F87   	 ja            		   jump if above
0F86          	 jna           	   	   jump if not above
0F83         	 jae            	   jump if above or equal
0F82        	 jnae        	     	   jump if not above or equal
0F82         	 jb               	   jump if below
0F83        	 jnb          	  	   jump if not below
0F86         	 jbe            	   jump if below or equal
0F87       	 jnbe        	    	   jump if not below or equal
0F8F       	 jg            	   	   jump if greater
0F8E        	 jng          	   	   jump if not greater
0F8D             jge           	   	   jump if greater or equal
0F8C             jnge         	    	   jump if not greater or equal
0F8C        	 jl            		   jump if less
0F8D        	 jnl           	  	   jump if not less
0F8E        	 jle            	   jump if less or equal
0F8F             jnle            	   jump if not less or equal
EB          	 jmp oder jmps 	   	   jump directly to
84               test            	   test
90           	 nop           	  	   no operation


Falls euch das Tutorial geholfen hat oder ihr was kritisieren wollt dann mailt mir.
Vieleicht schreib ich dann noch ein zweites(etwas anspruchsvolleres) Tut.

mailto: ChaosAngel@gmx.de

CU