Техника защиты компакт-дисков от копирования


Техника защиты компакт-дисков от копирования

Введение
Условные обозначения
Исторический аспект

Мысли о хакерах, защитах и программировании
Техника восстановления данных с лазерных дисков или практическое знакомство с сессиями
Восстановление удаленных файлов с CD-R/CD-RW
Получение доступа к удаленным файлам

Восстановление целых сессий
Ошибки начинающих или то, чего делать не следует


Восстановление очищенных CD-RW

Как восстановить не читающийся CD?
Общие рекомендации по восстановлению

Диск не опознается приводом
Диск опознается приводом, но не опознается операционной системой
При вставке диска в привод компьютер "зависает"
Диск читается с ошибками

Организация CD
Кратко о питахPit'ы, лендland'ахы, EFM-словаха, фреймовыхе кадрахы и секторах (кратко)
Каналы подкода
Таблица 1 формат данных Q-подканала
Адресация секторов
"Сырые" и "сухие" сектора

Синхрогруппы, объединяющие битыmerging bits и DSV
Скремблирование

F1-, F2- и F3-фреймы, CIRC кодирование
F1-фрейм.

F2-фрейм.
F3-фреймм.
Программная, вводная и выводная области, оглавление диска и область данных

Могущество кодов Рида-Соломона или информация, воскресшая из пепла
Корректирующие коды и помехоустойчивое кодирование (азы)

Идея кодов Рида-Соломна
Общее представление (врезка)
Что читать (врезка)

Полиномиальная арифметика и поля Галуа
Полиномиальная арифметика
Поля Галуа
Сложение и вычитание в полях Галуа
Умножение в полях Галуа

Деление в полях Галуа
Простейшие практические реализации

Коды Рида-Соломона в практических реализациях
Легенда
Кодировщик (encoder)
Декодер (decoder)
Синдромный декодер
Полином локатора ошибки

Корни полинома
Восстановление данных
Исходный текст декодера
Интерфейс с библиотечкой ElByECC.DLL
Подключение библиотеки ElByECC.DLL к своей программе

Функция GenECCAndEDC_Mode1
Функция CheckSector
Финал[Y81] [n2k82]
Методы низкоуровневого управления приводами
Практические советы по восстановлению системы в "боевых" условиях
Приложения, недопустимые операции и все, -все, -все…
Доктор Ватсон

Техника защиты компакт-дисков от копирования

Microsoft Visual Studio Debugger
Обитатели "сумеречной зоны", или из "морга в реанимацию"
Принудительный выход из функции
"Раскрутка" стека

Передача управления на функцию обработки сообщений

Как подключить дамп памяти
Восстановление системы после критического сбоя
Подключение дампа памяти

Методы низкоуровневого управления приводами
Интерфейсы взаимодействия с оборудованием
Доступ посредствомчерез драйвера CD-ROM-драйвер

Доступ посредствомчерез Cooked-Modeмоде (режим блочного чтения)
Доступ посредствомчерез SPTI

Доступ посредствомчерез SCSI-порта
Доступ посредствомчерез мини-порта интерфейса SCSI-мини порт
Взаимодействие посредствомчерез портовы ввода/вывода

Доступ через MSCDEX драйвер
Взаимодействие посредствомчерез собственный драйвер
Сводная таблица характеристик различных интерфейсов
Способы разоблачения защитных механизмов
" Отжиг" дисков. За, против и немного вокруг

Блокирование/разблокирование кнопки Eject
Хакерские секреты. Рецепты "тормозной жидкости" для CD
Примеры исследования реальных программ

Alcohol 120%
EasyCD Creator
CloneCD
Механизмы защиты
Встроенная защита CD-дисков

Искажение TOC'а и его последствия
Миссия1: Некорректный стартовый адрес трека

Техника защиты компакт-дисков от копирования

Миссия1: Некорректный стартовый адрес трека - 16
Автоматическое копирование и обсуждение его результатов

Так как же все-таки скопировать такой диск?
Пример реализации защиты на программном уровне

Полная нейтрализация защиты
* Искажение TOC'а и его последствияФиктивный трек в настоящем треке

Фиктивный трек в области данных подлинного трека

Фиктивный трек в Post-gap подлинного трека
Фиктивный трек в Pre-gap подлинного трека
Фиктивный трек в Lead-outLead-Out
Фиктивный трек, совпадающий с подлинным треком
Миссия: Искажение нумерации треков
Некорректный стартовыйого номера первого трека

Дважды одинаковый трек
Некорректный номер последнего трека
Разрыв в нумерации треков первой сессии

Разрыв в нумерации треков второй сессии
Диск, начинающийся не с первого трека

Диск с нулевым треком
Трек с нестандартным номером
Трек с данными, маскирующийся под аудио
Листинг 51 фрагмент оригинального диска

Некорректный Run-out как средство защиты или X-?сектор
Понятие X-сектора
Защиты, препятствующие проигрыванию диска в PC CD-ROM
Аудио, перекрываемое данными

Кастрированный Урезанный Lead-outLead-Out
Отрицательный стартовый адрес первого аудио трека
Защиты от пофайлового копирования диска (защиты уровня файловой системы)
Искажение размеров файлов

Листинг69 первое вхождение искомой последовательности в образе диска
Шифровка файлов

Техника защиты компакт-дисков от копирования

Защиты, основанные на привязке к носителю
Нанесение меток vs[8]. динамическая привязка
Защиты, основанные на физических дефектах
Защиты, основанные на временных характеристиках чтения
Измерение угла между секторами
Защиты, основанные на "слабых" секторах