Fr alle die es bis jetzt noch nicht wahrgenommen haben:

Das ist ein Tutor, um KINGPIN von seinem CD-Check zu befreien.

written by IgnaZ (karl.moik@topmail.de)
for Apollo

Der Schwierigkeitsgrad dieses Tutors liegt zwischen leicht und mittel.
(Also fr Anfnger und fr fortgeschrittene Anfnger).



Was ihr dazu braucht:
---------------------

* W32dsm - Decompiler/Disassembler (Gibts bei http://megacrack.tsx.org/)

* Einen Hex Editor - Hiew oder den Hex workshop(Ich benutze den Hex Workshop von www.bpsoft.com, weil ich mit dem besser 		     zurechtkomme)

* Ein Opfer: 	Kingpin - Life of Crime (Interplay/Xatrix) Version 1.2 (wrde theoretisch auch mit allen frheren Versionen 		funktionieren
		Den Patch gibts z.B. unter www.planetkingpin.com

* Eine PatchEngine - Ich benutze den Patchfx Generator von www.gamecopyworld.com
	             Braucht ihr zwar nicht unbedingt, wenn ihr eure Crackz aber verffentlichen wollt, ist das dringend zu 		     empfehlen

* Papier und Bleistift

* Viel Zeit und Geduld

Installation des Spieles:
-------------------------

Um das Spiel spter ohne CD spielen zu knnen, msst ihr natrlich (ist doch wohl logisch) eine Vollinstallation durchfhren. Ansonsten gehen dem Spiel wichtige Dateien ab, die es auf der CD suchen wrde.
Dann updated ihr das Spiel mit dem Patch von www.planetkingpin.com auf Version 1.2.

OK, soviel zur Installation.

Kurze Beschreibung von W32dsm:
-----------------------------

Man knnte sagen, dass alle Dateien, besonders EXE, DLL, COM und was weis ich fr welche es noch gibt, auf irgendeine komische Weise verschlsselt sind. Um die Datei zu entschlsseln und wenigstens etwas halbwegs sinnvolles auf den Bildschirm zu bringen, dass man einigermaen verstehen kann (werden die Newbies nach diesem Tut wahrscheinlich noch nicht)
bentigt man einen Disassembler. W32dsm ist so ein nettes kleines Proggi. Es hat eigentlich nur einen Nachteil, man kann die Datei nicht bearbeiten. Deshalb bentigt man(n)/frau noch einen Hexeditor.

Mehr will ich jetzt auch nicht erklren, sonst seid ihr spter (jetzt sofort) zu verwirrt, um Kingpin zu cracken.

Vorbereitungen:
---------------

Zuallererst nehmt ihr mal die CD-ROM aus dem Laufwerk und tut so als ob ihr Kingpin spielen wollt. *g*
Also auf New game und so...
Soweit so gut. Aber, was ist das? Pltzlich kommt so eine bse Fehlermeldung auf dem Bildschirm (Schreibt sie euch am besten auf, wenn ihr sie euch nicht merken knnt):

				You must have the KINGPIN CD in the drive to play.

Gut, macht nix, das ist am Schlu dieses Tutorials auf einmal, urpltzlich verschwunden.

Als nchstes macht ihr eine Kopie der Original EXE (z.B. Kingpin.bak)
Diese ladet ihr in den Hexeditor. (Fr alle, die noch nie einen Hexeditor gesehen haben: Es erscheinen jetzt eine Menge zahlen, die euch aber vorerst nicht interessieren werden. Verstehen tut sie sowieso keiner so genau)

Jupp, dann ffnet ihr die Original EXE (Kingpin.exe) mit W32dsm.
......Please Wait......

Und was sehen wir nach kurzer Zeit auf dem Bildschirm: Leider nichts verstndliches.

Macht nix: Jetzt geht's nmlich weiter.

Jetzt geht's los:
-----------------

In W32dsm gibts ein Symbol (das zweite von ganz rechts). Wenn ihr das drckt, kommt wieder lauter Bap, der wiederrum nicht interessiert. Nur eins interessiert. Scrollt nach unten und sucht nach der Fehlermeldung (Fr alle BSE-Kranken: "you must have the KINGPIN CD in the drive to play."
Ahaaaa... siehe da, ziemlich weit unten steht's dann auch.

Wenn ihr jetzt einen Doppelklick darauf macht, springt W32dsm zu der Zeile, wo die Anweisungen zu dem Kopierschutz stehen.

Jetzt wirds schwierig. Uns interessiert nmlich nicht, was im Kopierschutz steht, sondern einfach, wie man ihn umgehen (berbrcken kann). Hier ein Screenshot, zum besseren Verstndnis.

Noch ein paar Erluterungen:

Jumps sind Programmsprnge, die immer mit einer Adresse verknpft sind.
Es gibt verschiedene Arten: Hier nur ein paar

				je (=jump if equal/springe wenn Bedingung erfllt) = 74
		          jne (=jump if not equal/springe wenn Bedingung NICHT erfllt) = 75
			  		  jmp (=jump/springe immer) = EB
.						nop (=no operation) = 90
.
.
.
.
.

* Referenced by a CALL at Addresses:
|:004432B3   , :004432D7   
|
:00449061 55                      push ebp
:00449062 8BEC                    mov ebp, esp
:00449064 51                      push ecx
:00449065 833D4C1D480000          cmp dword ptr [00481D4C], 00000000
:0044906C 7402                    je 00449070		<-- Dieser Jump zeigt die Fehlermeldung, wenn keine CD drin ist.
							    Also deaktivieren wir diesen Jump einfach.
:0044906E EB67                    jmp 004490D7		<-- Anschlieend berspringt das Proggi den gesamten CD-Check im 							    Spiel (**) mittels diesem Jump.

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0044906C(C)
|
:00449070 E837FFFFFF              call 00448FAC
:00449075 8945FC                  mov dword ptr [ebp-04], eax
:00449078 837DFC00                cmp dword ptr [ebp-04], 00000000
:0044907C 750F                    jne 0044908D

* Possible StringData Ref from Data Obj ->"You must have the KINGPIN CD in "     <-- Aha, der Info zum CD-Check
                                        ->"the drive to play."
                                  |
:0044907E 6860A04500              push 0045A060
:00449083 6A00                    push 00000000
:00449085 E89076FDFF              call 0042071A
:0044908A 83C408                  add esp, 00000008

.
.
.
.
.
.

:004490C3 6A00                    push 00000000
:004490C5 E85076FDFF              call 0042071A
:004490CA 83C408                  add esp, 00000008				<-- Hier ist die letzte Zeile der CD-
										    check infos
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004490BC(C)
|

* Possible Reference to String Resource ID=00001: "WinQuake"
                                  |
:004490CD C7054C1D480001000000    mov dword ptr [00481D4C], 00000001

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0044906E(U)
|
:004490D7 8BE5                    mov esp, ebp					<-- Der oben genannte Jump (**) springt in 
:004490D9 5D                      pop ebp					    diese Zeile.
:004490DA C3                      ret

.
.
.
.
.
.


OK, also tun wir folgendes:

Wir suchen uns einen Jump, der vor den CD-Check Infos steht und diese komplett bis zum Ende berspringt. (Ende ist bei :004490CA)
Mit dem oben genannten Jump ist das mglich: 

.
.
.
.
.
.

:0044906C 7402                    je 00449070		<-- Dieser Jump zeigt die Fehlermeldung, wenn keine CD drin ist.
							    Wir ersetzen einfach das "je" durch ein "nop" und schalten ihn
							    somit aus. :)

.
.
.
.
.
.

Und das geht folgendermaen:

In W32dsm geht man mit dem farbigen Balken auf den oben angegebenen Jump. Jetzt kann man auf der Statuszeile (ganz unten) den "@offset" ablesen. Bei Version 1.2 ist das 4906C (Ohne dem h dahinter!!!)

Jetzt gehen wir im Hex-Workshop mit Hilfe des Menpunktes EDIT/GOTO zu besagter Stelle (Zur Erinnerung: 4906C)

Und siehe da: Wir haben hier wieder die Jump Anweisungen "7402" wie in W32dsm. Also ersetzen wir diese 4 Zahlen durch "9090".
Wir speichern das ganze und beenden alle Programme sorgfltigst. *schleim, schleim*

Allerdings mssen du jetzt die Datei "kingpin.bak" in z.B. "kingpin2.exe" umbenennen. Und diese dann starten. Die Originaldatei ist immer noch "kingpin.exe" (Mit CD-Check).

Herzlichen Glckwunsch. Du hast soeben Kingpin von seinem CD-Check befreit.

Nachspiel:
----------

Es gibt 2 Mglichkeiten, was du jetzt noch tun kannst:

1. Zusaufen oder
2. Mit einer Patchengine wie PatchFX einen ausfhrbaren Crack erstellen und im Internet verffentlichen.
   Bitte erwhne dann aber, da ich dir dabei geholfen habe. 

Also dann:

Danke fr Ihre Aufmerksamkeit und viel Spa noch.



CU++

IgnaZ