How to calculate angular distance between sectors?

vbimport

#1

Hi
First of all I should mention that I don't want to speak about getting backup from protected disks or defeating them. In fact I'm developing my own copy protection scheme and also my main issue isn't some concepts like protecting my protection file against debugging, cracking, ...
The problem I faced is extract some physical features from disks (Data Position Measurement or DPM). I think the best one of these features is angular distance between sectors. So for this I first calculate RPM or revolution period (in CAV mode) then calculate time of seeking to sector 2000 from sector 150 for example and finally calculate angular distance between these sectors. Up to now everything is good. but when I run the program on my laptop DVD drive I get a degree and when I do this on my PC with a different CD drive and DVD drive I get completely different degrees!:confused:
I don't want to discuss about programming details and I think it's not suitable for this forum.
But what do you think? Why do I get different degrees with constant speed in different drives? How can I solve this problem?
Thanks


#2

[QUOTE=myceuser;2724014]Hi
First of all I should mention that I don’t want to speak about getting backup from protected disks or defeating them. In fact I’m developing my own copy protection scheme and also my main issue isn’t some concepts like protecting my protection file against debugging, cracking, …
The problem I faced is extract some physical features from disks (Data Position Measurement or DPM). I think the best one of these features is angular distance between sectors. So for this I first calculate RPM or revolution period (in CAV mode) then calculate time of seeking to sector 2000 from sector 150 for example and finally calculate angular distance between these sectors. Up to now everything is good. but when I run the program on my laptop DVD drive I get a degree and when I do this on my PC with a different CD drive and DVD drive I get completely different degrees!:confused:
I don’t want to discuss about programming details and I think it’s not suitable for this forum.
But what do you think? Why do I get different degrees with constant speed in different drives? How can I solve this problem?
Thanks[/QUOTE]
Extract the firmware or download another file of it, then look at the degrees that are constant, and look at the degrees of speed ratio in the disc. Speed to degree will equal X ( what you are looking for) It will most probably be different with every DVDRW and disc.:doh::bigsmile:


#3

[QUOTE=alan1476;2724016]Extract the firmware or download another file of it, then look at the degrees that are constant, and look at the degrees of speed ratio in the disc. Speed to degree will equal X ( what you are looking for) It will most probably be different with every DVDRW and disc.:doh::bigsmile:[/QUOTE]

Thank you for your answer. But I didn’t understand it completely. Please explain more.
You said download another file? What file? Do you mean another firmware? So you mean it depends on firmware right? if yes where should I look?[QUOTE=alan1476;2724016]then look at the degrees that are constant, and look at the degrees of speed ratio in the disc. Speed to degree will equal X[/QUOTE]


#4

[QUOTE=myceuser;2724018]Thank you for your answer. But I didn’t understand it completely. Please explain more.
You said download another file? What file? Do you mean another firmware? So you mean it depends on firmware right? if yes where should I look?[/QUOTE]
Every DVDRW has Firmware, within the firmware are speeds and disc information, the firmware has to recognize the disc and the speeds that it will write or read at. Every DVDRW has different firmware, all the information you need is in the firmware . I used to have tool that would recognize what the speeds of certain discs would be calculated at. These could be changed with this tool. But alas that was a while back when DVDRWs were all the rage, the angular distance between the sectors would depend virtually upon the speed the disc is spinning at. So you would have to calculate the speed at CLV and pick a rotational equivalent like 8X to come up with what you need.


#5

[QUOTE=alan1476;2724021]So you would have to calculate the speed at CLV and pick a rotational equivalent like 8X to come up with what you need.[/QUOTE]

alan1476 please see http://club.myce.com/f80/defeating-starforce-3-5-cd-using-alcohol-sfcopy-160425/.
this part:

He emphasized on CAV mode. and just now I’ve tested this in CAV and CLV mode. I read sector 1500 twice and calculate time difference then the same test for sector 150000 in both CAV and CLV. In CAV mode both tests return 28-29 but in CLV mode, first test (sector 1500) return almost 57 and second return 28. I think it happened due to moving to outside of disk in CLV mode.

And I have to say that I don’t know much about firmware. How can I get those information you said from the firmware?


#6

The firmware is the brains of the cd or dvd drive.

You can decompile it if you know how to use a decompiler, or you can read about it. You can download samples here:

http://www.firmwarehq.com/BenQ/DW1640/files.html These are just benQ IDE firmwares from awhile back but all DVDROMs have firmwares.


#7

Maybe it’s a good starting point to browse some of our Starforce threads, especially those:


There was a russian Starforce article some years ago.
Attached a cheap google translation of it. Maybe it’s of any help.

Team Starforce.pdf (149 KB)


#8

Good and Helpful
Thanks

I worked on my app about 2 days and finally I found something strange. I tested all of my works on 3 CD/DVD drive. I sent a SCSI command to set the speed(0xBB) and as you know we should convert sX to its equivalent KB/s to fill Command Descriptor Block parts. I searched for this and I found each X is 150 KB/s.
So when I wanted to set the speed to 32X, I multiplied by 150 and I thought that’s done. but when I suspected I checked current read speed with tools like Alcohol 120% and Opti Drive Control and the speed of one of my drives (CD writer) was always 24X but other drives were 32X as expected. I don’t know why but few weeks ago when I reverse engineered SFCopy I saw in the code the author of SFCopy multiplies by 177!!! (each X = 177) So I tested it too and the speed of all of the 3 drives became 32X ! If you decompile SFCopy you see it.
Does anyone have a reason for 177 not 150?


#9

Could you explain how SF calculate angles as you have decompiled SFCopy in a pseudo language for example ?

Thanks


#10

After reading the question title _ How to calculate angular distance between sectors?_, I thought that the question comes from myself.

Can be inaccurate depending on drive and disc damage.
And many drives support no C1/C2 (LG, main example).


#11

It would be good, if you could directly read the RPM from the rotation engine.


#12

If it is a standard (in all readers model) it could be cool.
But if it is available in some readers, it’s bad because it shrinks the possibilities …


#13

Is it already available in some optical drives?