Need for Speed 3 'CD-Check!'
Written by McCodEMaN
Introduction |
Greetings and welcome to the noble art of reverse engineering!
Tools required |
Target's URL |
Essay |
Step1 Make a full installation of Nfs 3.
Step2 Copy the following folders from the Nfs
CD:
*GAMEDATE\AUDIO\Pc
*FEDATA\MOVIES
and
add them to your installed Nfs dir.
Why?...well we
like to have the music and movies...right!
Step3 Now, take a look at your Nfs dir.
You
should find a file called:
'install.win'
We
will have to change some commands in that file or else Nfs will search the CD
for some
files!
OK!...lets
Rock!!
Open
the file in notepad and change it so it looks like
this:
english
<===Your selected language!
local
.\GameData\
.\GameData\Tracks\
.\GameData\Tracks\Tutor\
.\GameData\CarModel\
.\GameData\Render\pc\
.\GameData\DashHud\
.\GameData\Audio\pc\
.\GameData\Audio\SFX\
.\GameData\Audio\Speech\English\
.\GameData\Audio\Speech\German\
.\GameData\Audio\Speech\French\
.\GameData\Audio\Speech\Spanish\
.\GameData\Audio\Speech\Italian\
.\FeData\art\
.\FeData\text\
.\FeData\text\
.\FeData\save\
.\FeData\stats\
.\FeData\config\
.\FeData\audio\
.\FeData\Art\Slides\
.\FeData\Art\Track\
.\FeData\Art\Showcase\
.\FeData\movies\
.\FeData\stats\prh\
Step4 Now it's time to kill that CD-check, so remove your Nfs
CD!!!!!
Next,
you should make a backup of your 'nfs3.exe' in case of something goes wrong.
Start W32Dasm and load nfs3.exe and while you're waiting try to figure out a way to crack this cd check!
Ok, the disassembly is all done...have you found a way?
Well, the easy way would be to hunt down the cd-rom access function and that is done like this:
Step into Functions and then Imports, try to locate KERNEL32.GetDriveTypeA and double click while
standing on it.
This should take you to:
:004F9440 2EFF15184455300 call dword ptr cs: [00534518]
Let's trace backwards and see if we'll find what we're looking for...shall we!
I found this:
*Referenced by a CALL at Addresses:
|:004B635B , :004B63BC
and decided to take a closer look at: 004B635B
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004B6362(C)
|
:004B6394 E807FFFFFF
call 004B62A0
:004B6399 85C0
test eax, eax
:004B639B 755A
jne 004B63F7 <---Would always like to jump here!
:004B639D 31D2
xor edx, edx
:004B639F EB19
jmp 004B63BA
Final Notes |