Willkommen zu Gizmo's Game Cracking Tutorial 3!

iNtRo:
======
Dieses Tutorial setzt das Grundwissen der Tutorials 1+2 vorraus. Falls ihr diese nicht gelesen habt, tut dies (come.to/qcg).
Heute zeig' ich euch, wie man Spiele crackt, die keine Fehlermeldung in der String Data Reference haben. Da mu man dann auf ein Windows-Modul zurckgreifen.

Bentigte Tools: (wie immer)

Win32DASM
Hiew

findet ihr unter http://come.to/qcg in der Filez Section

Let's G0!
=========
Heute cracken wir MechCommander. Auch wenn man dieses Spiel nicht hat, so kann man doch die Grundzge der Crack-Art nachvollziehen. Dieses Verfahren lt sich auch auf andere Spiele anwenden. Wenn die Asm-Codes anders sind, als bei euch, so habt ihr eine andere Version als ich. Da das Verfahren jedoch gleich bleibt, crackt es einfach mit euren Codes.

Als erstes installieren wir MechCommander mit allen Optionen (ca 430 MB). Nach der Installation entfernen wir die CD aus dem Laufwerk (brauchen wir ab jetzt nicht mehr) und erstellen ein Kopie von Mechcmdr.exe. Diese Kopie disassemblieren wir in Win32DASM. Das dauert eine Weile. Wenn er fertig disassembliert hat, starten wir Mechcmdr.exe. Doch was ist das? So ein "netter" Programmierer hat gedacht, er knnte uns rgern und eine Fehlermeldung erscheinen lassen:
"Bitte legen sie die MechCommander-CD in das CD-ROM Laufwerk".
Normalerweise wrden wir jetzt auf String References klicken und anschlieend auf die Fehlermeldung doppelklicken. Doch wir finden leider keine Fehlermeldung.
So, jetzt kommt der neue Teil: Statt auf String Data References klicken wir auf "Functions",
dann auf "Imports". Jetzt suchen wir in der Liste folgendes Modul:
KERNEL32.GetDriveTypeA
Dieses Modul ist eine Windowsfunktion, welche das CD-ROM checkt.
Auf dieses doppelklicken wir jetzt, schlieen es anschlieend und sehen folgende Codes vor uns:

	.
	.
	.

 * Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041EAA4(C)
|
:0041EA45	85FF			test edi, edi
:0041EA47	0F85F5000000		jne 0041EB42			<-- 1
:0041EA4D	8D442410		lea eax, dword ptr [esp+10]
:0041EA51	50			push eax

* Reference To: KERNEL32.GetDriveTypeA, Ord:00DFh
					|
:0041EA52	FF15F0005700		Call dword ptr [005700F0]
:0041EA58	83F805			cmp eax, 00000005
:0041EA5B	753B			jne 0041EA98

So, da wren wir nun. Der Jump bei (1) sieht so aus, als ob er den CD-Test Vorgang berspringt, wenn die Bedingung erfllt wurde. Dem wollen wir nun abhelfen. Wir ndern ihn nun so um, da er immer den CD-Test Vorgang berspringt. Wie machen wir das nun ???
Richtig! Wir merken uns den @Offset (ohne das h), schlieen Win32DASM, ffnen Hiew, whlen Mechcmdr.exe aus und drcken F4, whlen Decode, drcken F5, geben den Offset (0001DE47)ein und da wren wir nun. Wir wollen den jne in jmp umwandeln. Doch wir kennen fr jmp nur den Hex Code EB. Doch da hier nicht 75 steht, sondern 0F85, drcken wir F3, dann F2 (Fr ASM) und ndern das:

jne	00001DF42

in das um:

jmp	00001DF42

anschlieend drcken wir ENTER, dann ESC, dann F9, dann F10. Jetzt starten wir Mechcmdr.exe und TATAA! ES LUFT OHNE CD!!!

oUtRo:
======
So, da wre geschafft. Wenn ihr Fragen zu dem Tutorial habt oder eure Meinung loswerden wollt, dann schreibt an:
	e-mailGIZMO@gmx.net

gREETz fLy oUt tO:
==================

All QCG Memberz
All Crackers
All Newbies