This tutorial are coming from

Acid Cool 178

Tutorial Number 37

Target

Program_____________ SiN (Not Updated or something like that)
Protection___________ CD-Check
Downlaod it at ______ By the CD
Date________________ June 2000

Toolz

Win32 Deassembler
Hex Editor (I use Ultra Edit Version 7.10A)
cRACKER nOTES

Essay

Well, I'm are in a bad mood now.. My internett connection are down and i can't find crackmes or apps to crack, no IRC, no net friends to talk with.. Only real life assholes and training hell.. I have been biking 5 miles under 2 hours today, so this are my little rest :)

Or, i was looking in my CD-Collection and i had some games that needed one CD to be plaid, so why the hell not ? I took SiN because i can remember that i could install all of the files to the HDD, 600 MB :/ Well.. Erm..

It took me about 10 min to install the complete game into my HDD, i took a snack break :) I have Windows 2000 PRO so it was cool only to see if the game did work.. Maaaany programs don't work now anymore,, like Norton Antivirus 2000 For Win98/95 FUCK!!! I downloaded one for WinNT but havent managed to crack it yet.. Damm..

Now, finally the game are installed, so i took the CD and inserted it back to the "normal" place.. The first thing that i did was to open the file sin.exe (The start file to the game) in an hex editor and searched for "dilla" "laserlock" just to check if the game was copy protected with C-Dilla and Laserlock, it wasn't :) Why i did that ? I have tried to crack other games and thay was protected :( Even LEGO Friends Version 1.0 was protected with C-Dilla.....

Task 1.0         <-- Cracking with W32Dasm
Task 1.1        <-- Cracking with W32Dasm Another way to crack it on..



Task 1.0

Copy sin.exe to another directory and open it in Win 32 dissassembler, when that are done so start the game.. Now try to play it and you will get the the bad thing. "You must have the SiN CD in the drive to play." Heyyyy, fuck off, i want to play it without the CD!!

Now, write that message down and go back to Win 32 Deassembler, goto "Refs-->String Data References" and scroll down to the line "You must have the SiN CD in the" and click on that string. Now you will se this code..


* Possible StringData Ref from Data Obj ->"You must have the Sin CD in the "
                                        ->"drive to play."	<-- Take one wild guess	
                                  |
:0045BBBA 685C014800              push 0048015C		
:0045BBBF 6A00                    push 00000000
:0045BBC1 E8DA16FCFF              call 0041D2A0

Well, this are only guessing but as i can se this so are the first push pushing "You must have the Sin CD in the " to the stack and the seccond push are pushing "drive to play." to the stack. We can figure out that later.. The call are calling the messagebox and closing the game.. Fuck..

Scroll UP and you will se this code..


* Referenced by a CALL at Address:
|:004568B4   
|
:0045BBB0 E8CBFEFFFF              call 0045BA80
:0045BBB5 803800                  cmp byte ptr [eax], 00
:0045BBB8 750F                    jne 0045BBC9		<-- This jump must be activated
* Possible StringData Ref from Data Obj ->"You must have the Sin CD in the "
                                        ->"drive to play."
                                  |
:0045BBBA 685C014800              push 0048015C
:0045BBBF 6A00                    push 00000000
:0045BBC1 E8DA16FCFF              call 0041D2A0
:0045BBC6 83C408                  add esp, 00000008
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0045BBB8(C)						<-- Jump here...
|
:0045BBC9 C3                      ret

As you can see at the jump at 0045BBB8 are jumping to 0045BBC9 when it are activated and it are jumping OVER the badboy, so we have to change it from JNE to JMP and now I got a problem in Win2K, Hiew don't work anymore.. I have to use one hex editor.. But JMP have the code EB in hex, and that all i need to now..

Open sin.exe in you hex editor and start a search for "75 0F 68 5C 01 48" and change it to "EB 0F 68 5C 01 48" and try to play the game..

CRACKED!!!!

Now that jump are always jumping OVER the badboy so it won't be executed and that's what i want.. and did make it not to do...

Task 1.1

Well, we have the file sin.exe and want to crack on another way.. Open fins the imports command and look for "KERNEL32.GetDriveTypeA"
BREAK!!!!!!
If you want to now what i'm are looking for so are it the API call to the CD-Check. This are coming from "cRACKER nOTES"

GetDriveTypeA / GetDriveTypeW

Determines whether a disk drive is a removable, fixed, CD-ROM, RAM disk, or network drive.
     UINT GetDriveType(
      LPCTSTR  lpRootPathName 	               // address of root path
     );

Returns
0 Drive can't be determinded
1 Drive can't be determinded
2 Root Directory does not exist
3 Fixed Drive (Harddisk)
4 Remote Drive (Network)
5 CD-ROM-Drive
6 RAM-Disk (only GetDriveTypeA)

Well TON@DO I love the cRACKER nOTES...

This are the API call that the game are using to check if the CD are inserted or not, and it are comparint it with 5 wich are the CD-Rom Drive..

Back to Win 32 Dasm, fin the API import and click on it until you can see this code..



* Reference To: KERNEL32.GetDriveTypeA, Ord:00F0h
                                  |
:0045BB4E FF15C0004700             Call dword ptr [004700C0]
<-- LPCTSTR  lpRootPathName ??
:0045BB54 83F805                   cmp eax, 00000005
<-- The comparing routine
:0045BB57 7544                     jne 0045BB9D
<-- Badboy jump


If we are looking at this so are the jump joing to this code..


* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0045BB26(C), :0045BB57(C)
|
:0045BB9D 881D288C4E00            mov byte ptr [004E8C28], bl	<-- Jumps here
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0045BAAB(C), :0045BAE8(C), :0045BB6A(C)
|
:0045BBA3 5F                      pop edi
:0045BBA4 5E                      pop esi
:0045BBA5 B8288C4E00              mov eax, 004E8C28
:0045BBAA 5B                      pop ebx
:0045BBAB 83C450                  add esp, 00000050
:0045BBAE C3                      ret
:0045BBAF 90                      nop
* Referenced by a CALL at Address:
|:004568B4   
|
:0045BBB0 E8CBFEFFFF              call 0045BA80
:0045BBB5 803800                  cmp byte ptr [eax], 00
:0045BBB8 750F                    jne 0045BBC9
* Possible StringData Ref from Data Obj ->"You must have the Sin CD in the "
                                        ->"drive to play."
                                  |
:0045BBBA 685C014800              push 0048015C
:0045BBBF 6A00                    push 00000000
:0045BBC1 E8DA16FCFF              call 0041D2A0
:0045BBC6 83C408                  add esp, 00000008

No can we see that the jump must NOT be executes because it are going to the badboy and we dont want that.. Now we have to fins the jump in our hex editor and NOP it out 4 ever.. Search for the code "75 44 BF 28 8C 4E 00" and change it to "90 90 BF 28 8C 4E 00" and the jump are gone 4 ever :) the game are also CRACKED!!! :)

 

Ending

Well, i have tried to explain my best on cracking this game.. Hope that you will forgive all of my spelling and grammar errors....

 


LaZaRuS, Wajid, Borna Janes, ManKind, Eddie Van Camper, ACiD BuRN, KoRnFLeX, Eternal_Bliss, Potsmoke, DiABLO. Torn@do, ^AlX^ , AC|D, Dark Wolf, Marton and all the other i have forgotten