Safedisk Decryptor v1.1 (unSafedisk)

requires *.exe/*.icd/dplayerx.dll to be in the same dir ..

tested safedisk versions ..


dplayerx.dll
81,408    ; r0, sept'98, jump table for api's, tom clancys rainbow six
155,648   ; r1, apr'99, api mangling two push version, roller coaster tycoon
156,160   ; r1, aug'99, two push version, tiberian sun1.08, darkstone1.02, dungeon keeper, system shock 2
163,328   ; r2, three push?, encrypted asciiz's, tiberian sun1.13, darkstone1.03, cutthroats, aoe2
165,888   ; r2, darkstone1.04/1.05b, half life opposing forces, abomination r1/r2.6.4, unreal tournyv4
172,544   ; r3, jan'00, api decided by calling address, darkstone1.05eu, unreal tourny v4.13
173,568   ; r3.5, apr'00, slight variation on previous version, messiah01, f1 2000

maybe some other versions too .. but not if dplayerx.dll is bigger then 173,568
takes less than 20seconds to brute r2 / r3 / r3.5 .. r0 and r1 take much longer

decrypting r0/r1, two exe's are created, as sometimes the api demangling key differs from the
encryption key... "add     [decrypt_key], 80000000h    ; temp key for re-demangling rdata"

00000000 -> 355f84b0 took approx 19 minutes? on my amd450..
00000000 -> 563b3039 took approx 28 minutes, tiberian sun 1.08..
sab.exe, by ArthaXerXes, is twice as fast, with its MMX brute force engine :)
00000000 -> 563b3039 using sab.exe/seth v1.1 took 16 minutes...

-

most(all) of the safedisk decryption code was STOLEN from a crack released by 'dec0de12',
the other crap, chucked together by "r!sc" over a period of two weeks, and should hopefully
be bug free by this time, tested on about 20 different games, and every one seems to work.
one dodgy routine, which might fail is "scan_icd_for_some_encrypted_nulls", but since it
hasnt failed yet, heh, it doesnt need fixing yet.

take care fuckers, 

love r!sc