демонстрационный пример
Предлагаемая защита не копируется Clone CD (т. к. он создает всего одну сессию вместо ожидаемых двух), но легко обходится Алкоголем, которой хоть и помещает на место первой секции непотребный мусор, зато вполне корректно воссоздает оригинальный TOC.
Для усиления защиты мы можем попытаться не только проверять обе сессии на существование, но и контролировать целостность их содержимого. Разумеется, не обязательно перелопачивать каждую их секций целиком. Достаточно выбрать несколько ключевых секторов, желательно имеющих по возможности уникальное содержимое. Постойте! – воскликнет внимательный читатель. Разве автор не предостерегал нас о последствиях такой проверки?! Ведь никто не может гарантировать, что на оборудовании пользователя эти сектора вообще прочтутся! Что ж, – отвечу я. Закладываться на читабельность
секторов, действительно категорически не рекомендуется, но вот контролировать успешно просчитавшиеся сектора можно и нужно! То есть: если ключевые сектора не читаются, то все ОК и нет никаких поводов считать диск нелицензионным – это просто у конечного пользователя оборудование такое (в смысле что кривое). Другое дело, если чтение секторов прошло без ошибок, но вместо ключевых данных в них оказалось нечто совсем иное. Вот тогда, действительно, проблема не в оборудовании, а в диске.
Усиленный вариант защиты уже не копируется Алкоголем (т.к. вместо оригинального содержимого первой сессии Алкоголь помещает на диск какой-то дикий мусор), но может быть скопирован вручную по методике, описанной выше. К тому же, привязка к искаженному TOC'у элементарно отламывается в отладчике/дизассемблере. Так что дальнейшее совершенствование защиты практически полностью бессмысленно. От "простых смертных" пользователей мы уже защитились, а от хакеров мы не сумеем защититься все равно (во всяком случае не этим способом). В любом случае, более продвинутые защиты – тема отдельного разговора.