Как получить точное местоположение и углы секторов на CD или DVD (измерение положения данных)?

Разрабатываю защиту от копирования. Он должен иметь возможность идентифицировать компакт-диски с использованием некоторых функций, таких как углы секторов или точное физическое расположение секторов (измерение положения данных). Итак, вопрос в том, какие функции я могу использовать для этого и как я могу получить некоторую информацию о них, особенно об углах секторов?

Как вы знаете, главное - эти функции должны изменяться каждый раз при копировании диска.

Предпочтительные языки - C ++ и C #.

Спасибо.


person user3408433    schedule 12.03.2014    source источник


Ответы (2)


В принципе, вы не можете.

Углы секторов и радиус считывания - это информация, которая не отображается на обычном оптическом приводе, вам потребуется изменить прошивку привода, чтобы отправить эту информацию на хост.

И даже больше: в зависимости от условий окружающей среды представление этих параметров приводом может сильно измениться, а производственные допуски (в первую очередь, центральное отверстие не находится точно в центре диска) очень затруднят использование этой информации. поскольку он будет меняться между разными экземплярами одного и того же диска.

Самое главное: это не создаст никакой защиты от копирования - если вы можете проверить эту информацию, то это может сделать и кто-то другой, позволяя ему использовать ее для создания чертовой копии.

Основное правило: любая информация, которую вы можете извлечь с диска для проверки ее подлинности, также может быть извлечена для ее копирования - это причина, по которой схемы защиты от копирования лучше всего работают на заблокированном оборудовании (например, игровых консолях), где прошивка накопителя действительно к нему адаптирована.

person Eugen Rieck    schedule 12.03.2014
comment
Евгений, пожалуйста, посмотрите это. - person user3408433; 12.03.2014
comment
Евгений, пожалуйста, посмотрите это. На этой странице автор продемонстрировал использование приложения SFCopy. Это может быть незаконное приложение, но я имею в виду, что такую ​​информацию можно получить с компакт-дисков или DVD-дисков с помощью обычных оптических приводов. Проблема в том, что я не знаю, как это работает. Когда я проанализировал sfcopy, я обнаружил, что он вызывает DeviceIoControl с кодом IOCTL 0x0004D004, но я не нашел этого кода в MSDN. Если можно скачать и протестировать на компакт-диске. Спасибо - person user3408433; 12.03.2014
comment
Упомянутые здесь углы просто интерполируются с учетом времени, необходимого для получения данных, и скорости вращения - оба значения легко доступны с привода. Если хотите, назовите их виртуальными углами. Возможно, вы заметили, что ваши сообщения указывают на успешный обход, поэтому основное правило: «Если вы можете играть, вы можете его скопировать», то все еще остается в силе. - person Eugen Rieck; 12.03.2014
comment
IOCTL 0x0004D004 - это сквозная передача SCSI, я думаю, что имеет смысл. - person Eugen Rieck; 12.03.2014

Точные меры не сработают, но для снятия отпечатков пальцев это не обязательно. Вы можете измерить время поиска между любой парой секторов.

Я намеренно сказал «снятие отпечатков пальцев». Сначала вам нужно будет измерить вариации между устройствами для вашего предполагаемого рынка (это, вероятно, ПК, а не XBox, верно? Так что это довольно некоторые вариации). Затем вам нужно исследовать корреляции - какова связь между временем поиска по двум и трем трекам?

Наконец, вам нужно придумать соответствующий допуск. Пятна на дисках БУДУТ вызывать ошибки поиска.

person MSalters    schedule 12.03.2014
comment
Отличается ли время поиска для каждой копии диска? Если да, объясните, пожалуйста, как я могу измерить время поиска? Спасибо - person user3408433; 12.03.2014
comment
@ user3408433: Если вам нужно задать такие простые вопросы, вы не в своей лиге. Оставьте эту проблему более опытным людям. (Также эти вопросы здесь не по теме) - person MSalters; 12.03.2014