Willkommen zu Gizmo's 1st Cracking Tutorial!

Intro:
======

Da ich selbst auch vor nicht zu langer Zeit mit dem Cracken begann, merkte ich schnell, dass es viele Tutorials gibt, doch nur wenige davon etwas bringen, wenn man noch nie etwas 
mit Cracken am Hut hatte. Deshalb habe ich mich entschlossen, ein eigenes Tutorial zu schreiben, dass auch einer versteht, der noch nie einen Disassembler (???HUCH, WAS IST DENN DAS???) benutzt hat.
Fuer dieses Tutorial sind keinerlei Vorkenntnisse erforderlich. Wenn ihr dieses Tutorial gelesen habt, muesst ihr aber nicht denken, dass ihr jetzt jedes Spiel cracken koennt, was euch unter kommt. Das Spiel das wir in diesem Tutorial cracken, hat einen !SEHR! einfachen CD-Check, und nur gaaanz wenige Spiele lassen sich so leicht, wie dieses, cracken.                                                                                 
Doch genug geredet, fangen wir an:                                                      

Benoetigte Tools:   

Es gibt zwei Programme, die ihr braucht, um dieses Spiel (und auch viele andere) zu cracken:	

1.	Win32DSM - ein Disassembler
2.	Hacker's View (HIEW) - ein HEX-Editor

beide Programme bekommt ihr unter http://come.to/qcg in der Filez Section


Los gehts:
==========

Als erstes besorgt man sich UNREAL (unser OPFER). Dann installiert man das Spiel mit allen Optionen (ca. 400 MB). Nach der Installation ist das erste, was wir machen, die CD aus dem Laufwerk zu entfernen, da wir die in Zukunft nicht mehr brauchen!
So, jetzt suchen wir mal die EXE-Datei, mit der Unreal gestartet wird. Diese heisst Unreal.exe und befindet sich im "System" Verzeichnis. Von dieser Datei erstellen wir eine Kopie (STRG+C, danach STRG+V). Jetzt starten wir Win32DSM und klicken auf "Disassembler", danach auf "Open File to Disassemble.." Jetzt suchen wir die Kopie von Unreal.exe und klicken auf oeffnen.
Nachdem unser Computer fertiggerechnet hat, sehen wir entweder lauter komische Zeichen, oder einen Text, der uns aber nichts sagt, vor uns. Wenn ihr komische Zeichen seht, dann klickt auf "Disassembler", danach auf "Font" und dann auf "Select Font". Jetzt koennt ihr eine Schrift auswaehlen. Ich empfehle Courier New, weil da alles uebersichtlich dargestellt wird. So jetzt koennt ihr auch einen Text mit vielen Zahlen lesen. Das Programm hat jetzt die Unreal EXE "aufgeschluesselt", dass wir etwas mit ihr anfangen koennen. Jetzt startet ihr die original Unreal.exe (WICHTIG: OHNE CD IM LAUFWERK!!!). Nach einigen Rumgerechnereien, kommt die Fehlermeldung "Please insert the Unreal CD-Rom in your drive and press OK to continue, or Cancel to exit"
Wir merken uns die Fehlermeldung und klicken auf Abbrechen. Jetzt wechseln wir wieder zu Win32DSM. Dort klicken wir auf "Refs" und dann auf "String Data References". Jetzt suchen wir mal nach der Fehlermeldung, doch wir finden keinen Text der mit "Please insert..." anfaengt. Dann schauen wir mal nach was anderem, das wir gebrauchen koennen. Nach einigem Suchen findet man "InsertCDTitle". Das hoert sich doch schon mal gut an.
Auf diesen Text doppelklicken wir und klicken auf "Close". Jetzt beginnt die eigentliche Arbeit. Wir sollten jetzt folgendes vor uns haben:

* Reference To: Core.?appFSize@@YAHPBD@Z, Ord:0313h                                     
 														          
:00402049 FF15A8744000		Call dword ptr [004074A8]    
:0040204F 83C404		add esp, 00000004       
:00402052 85C0			test eax, eax		<--  1	
:00402054 7F4D			jg 004020A3		<--  2	
:00402056 6A00			push 00000000							    
		    
* Possible StringData Ref from Data Obj ->"Window"		
:00402058 68DC604000		push 004060DC                          

* Possible StringData Ref from Data Obj ->"InsertCdTitle"	
:0040205D 68DC614000		push 004061DC
:00402062 FFD7			call edi
:00402064 83C40C		add esp, 0000000C
:00402067 8BF0			mov esi, eax   
:00402069 6A00			push 00000000						          
		          
* Possible StringData Ref from Data Obj ->"Window"						    
			    
:0040206B 68DC604000		push 004060DC							      
			      
* Possible StringData Ref from Data Obj ->"InsertCDText"					 
    
:00402070 68CC614000		push 004061CC
:00402075 FFD7			call edi
:00402077 83C40C		add esp, 0000000C
:0040207A 6801200000		push 00002001
:0040207F 56			push esi
:00402080 50			push eax
:00402081 6A00			push 00000000			

So, jetzt erklaer ich euch mal, was da steht. Ach ja, es kann sein, dass bei euch andere Zahlen stehen, das liegt dann daran, dass ihr eine andere Version als ich habt. Macht es dann einfach mit euren Werten. Uns interessiert der Teil bei "InsertCdTitle". Das ist die Fehlermeldung. Die Fehlermeldung muss ja von irgendwo aufgerufen werden. Unser Ziel ist es jetzt, die Datei so umzuschreiben, dass die Fehlermeldung nicht mehr aufgerufen wird. Weiter oben wird eax (Ein Wert, der uns nicht naeher interessiert) getestet (siehe 1). Darunter (2) steht ein jg, was englisch ist, und soviel bedeutet, wie "Jump if greater". Es wird also, wenn die Bedingung erfuellt ist (die CD im Laufwerk ist), irgendwohin gesprungen. Wenn aber nicht weggesprungen wird, dann nimmt das Programm seinen weiteren Verlauf und kommt zu der Fehlermeldung. Wollen wir das??? NEIN!!!       
Also, unser Ziel ist es jetzt, das jg, welches die Fehlermeldung ueberspringt, so umzuschreiben, dass das Programm nicht nur wegspringt, wenn die Bedingung erfuellt ist, sondern das es immer die Fehlermeldung ueberspringt.						     
Hierzu klicken wir auf die Zeile bei 2:

:00402054 7F4D			jg 004020A3							

Es muesste jetzt ein gruener Balken ueber dem Text sein. Wenn der Balken gruen ist, schauen wir auf die Statusleiste (ganz unten auf dem Bildschirm) und schauen uns die Zahlen hinter dem @Offset an: ... @Offset 00001454h ...	
Uns interessiert nur die Zahlenfolge ohne das "h": 00001454.
Diese notieren wir uns und beenden Win32DSM wieder, da man in diesem Programm nur Dateien anschauen, nicht aendern kann. Jetzt koennen wir unser zweites Programm benutzen, den Hexeditor HIEW. 								          

Wir starten Hiew und waehlen die Datei aus, die wir editieren wollen - Unreal.exe -.    
Jetzt druecken wir F4, waehlen Decode aus und druecken Enter. Jetzt sehen wir aehnliche Zeilen wie in Win32DSM. Dann druecken wir F5 und geben den notierten Wert ein, naemlich 00001454.	   
So, jetzt sind wir bei der Zeile mit dem jg. Doch wie aendern wir das jetzt? Ganz einfach, wir druecken F3 und geben jetzt einfach EB (das steht fuer jmp - Jump directly - also immer) ein. Jetzt muesste EB4D dastehen. Nun druecken wir F9 und danach F10. Wir befinden uns jetzt wieder im Windows.								     

Jetzt wollen wir doch mal testen, ob wir das auch richtig geaendert haben...             

Wir starten Unreal.exe und ... roedel roedel ... TATAA!!! Wir sind in Unreal und koennen es spielen - OHNE CD!!!

Nachwort:
=========

Unreal hat einen sehr einfachen Kopierschutz, doch das Prinzip ist bei den Meisten Spielen das gleiche: Die Fehlermeldung zu finden und das Programm dazu zu bringen, die Fehlermeldung zu ueberspringen und gleich das Spiel zu starten.                         
Es wird meistens ein Jump umgeschrieben, um das Spiel zum laufen zu bringen.            
Hier habe ich euch noch eine Tabelle mit den wichtigsten Jump befehlen:                 

Hex-Code     |	 Asm-Code    | 		Bedeutung 
--------------------------------------------------------------------
75 oder 0F85 |     jne       | Jump if not equal - wenn nicht gleich                    
74 oder 0F84 |     je        | Jump if equal - wenn gleich                              
EB           |     jmp       | Jump directly to - immer                                 
90           |     nop	     | no operation - NICHTS                                    

Manchmal muss man einen Jump auch ausnopen, was soviel heissen soll, wie ihn auszuschalten, damit er erst gar nicht zur Fehlermeldung springt. Doch dass will ich hier nicht auch noch naeher beschreiben. Das beste Mittel, ein guter Cracker zu werden, ist es, an verschiedenen Spielen zu ueben und verschiedene Jumps auszuprobieren.         
  
Falls ihr Fragen zu diesem Tutorial habt, dann mailt an: 
		emailGIZMO@gmx.net             

Mailt mir aber bitte nicht, wenn ihr was ueber andere Spiele wissen wollt.