Possible solution for Safedisc?

vbimport

#1

Does newer versions of safedisc check if the CD is Mode 1 or Mode 2 ?

If not, then we could make an image of the protected CD we want to copy, convert it to Mode 2, then burn it back. The weak sectors would no longer be weak (and thus, could be burnt by ANY writer), but still look the same when checked by the guard module.

I’ve tested this on SafeDisc 2.9 (latest that i have), it seems to work …


#2

How do you go about converting the image to a different mode. What program / settings did you use?

Thanks


#3

I used CDMage(http://cdmage.cjb.net/) to do it :

  • make the image
  • open the MDF/IMG/BWI/BIN/whatever file in cdmage as a M1/2352 track.
  • right-click on the first track in the main window (there should only be one anyway), choose “extract tracks”. Extract it as Mode2/2352, leave the other settings alone.
  • once the file is converted, create a cue file containing something like that:

FILE “test.tao” BINARY
TRACK 1 MODE2/2352
INDEX 1 00:00:00

Try mounting it on a virtual drive first, to see if it works. If you want to burn it, you’ll have to use Alcohol because of the pregap issue.


#4

** UPDATE **

I made other tests with the game Will Rock (SD 2.90.040) : results are a bit strange.

When mounted on a virtual drive, the converted image works.

Then I burnt it on a Ritek CD-R, using an old Phillips 4x burner (1 sheep) and Alcohol 1.4.8.2222, using safedisc profile.

First, there were not errors at the beginning of the CD, as expected : CDMage recontructs ECC/EDC fields during the conversion, but it is not a problem because Safedisc doesnt seem to check the errors anymore since safedisc 1. (Anyway, it worked from the virtual drive).

When run from an Administrator account, the game crashes, like when it detects a copy (however, the error code is different)

When run from a limited account, the game runs fine everywhere.

So I guess something was lost during the conversion, something that can only be accessed by administrators. It could be the pregap area, or maybe SD now reads the weak sectors in RAW mode to prevent “Amplify weak sectors” and other means of emulation. (Does windows API allow reading sectors in raw mode in a limited user account ?) Or maybe it is something else … Anyway, further tests shoud be made.


#5

Might be a fluke because safedisc is known to be a little buggy. Also, are you hiding ATIP?

To show how buggy safedisc is, I was able to run any recent safedisc copy without hiding ATIP off an old promise PATA controller and also off an aol sony crw 12x burner.

But it seems like you tried an interesting experiment.


#6

Well for the first time i have been able to create a working backup of Prince of Persia (sd 3.15), using this conversion method and my ltr-48125w! Nothing else has worked so the method does seem to work. :bigsmile:

However i agree that it will only work in a limited account, and will not start in an admin account in windows xp.

I used both alcohol 120% and fireburner to burn the converted image (made with alcohol) and got slightly different results. Both backups worked fine in a limited user account. The alcohol copy gave an error immediately in the admin account whereas the fireburner copy gave no errors but simply would not start…maybe playing with the fireburner settings will yield different results?

For now i have created a sparate “gaming” account and thats fine for me…but it would be nice to know what is stopping the backup from working in the admin account!


#7

I found that Safedisc 2.7 and earlier can be successfully copied using this method, the copies run everywhere and under any account. The problems arise from Safedisc 2.8, where the game won’t run if the user has admin privileges.

By the way, it looks like the Safedisc guard module does not look for ATIP under a limited account (nor does Securom). So it might be a good way to hide ATIP on laptops running Win2k/XP without installing any ATIP hiding software (which can be blacklisted).


#8

This is an interesting idea, but you can easily detect track mode. Of course, it is easy to detect twinpeaked copies, but securom seems not to have caught on :wink:

Actually, I figured out this method is not so easily defeated. Currently, safedisc uses READ command (vs. READ CD command) to check bad/weak sectors. If they do this, they can’t tell track mode. But if they use READ CD they can. But SCSI cdrom’s (and maybe others) don’t support READ CD.


#9

Does anyone know what sets the admin account apart from a limited user account? Why should the backup work on one but not the other?

Has anyone else done any testing on this issue?


#10

limited accounts limit certain things like modifying registry settings and computer setting access. As well as installing some software etc.

Its possible that one of these limitations causes the protection to fail or make it fail a copy test (which makes it run)


#11

The Mode2 copies fail to run under Administrator account because the Safedisc guard module sees something is wrong when it checks the pregap area of the CD.

Proofs :

  • The problem only occurs form SD 2.8
  • If CloneCD Tray 4.2.0.2 (newer versions don’t work) is running, the copies run from the administrator account . But because it is blacklisted by newer versions of safedisc, it is not a solution.
  • When i make an image of a mode2 copy using Blindwrite 4 in BWT format (which includes the pregap area), and i mount it on Alcohol’s virtual drive, it fails to authenticate. Then i make the same image using CCD, in CloneCD’s format, which does not include the pregap, and I mount it on the same virtual drive -> this time it runs fine.

This check is not performed under a limited account for some reason, probably because it involves sending special commands to the CD reader and Windows APIs don’t allow this. Many burning programs, like Nero, CloneCD, and probably many others either fail or crash when run under a non-administrator account for that reason, unless they use a filter driver like BW5’s Patin couffin - but isn’t safedisc’s “secdrv.sys” here to fix that ?

Does anyone have an idea on how that could be fixed, or more info on what is checked by SD2.8+ in the pregap ?