демонстрационный пример простейшей защиты, привязывающейся
{fprintf(stderr, "-ERR: not original LBA\n");return -1;}
else
break;
}
// это оригинальный диск!
printf("Hello, original CD\n");
}
Листинг 8 [crackme.9822C095h.c] демонстрационный пример простейшей защиты, привязывающейся к искаженному TOC'у и не позволяющей себя копировать
Предлагаемая защита не копируется программой Clone CDCloneCD (т. к. она создает всего одну сессию вместо ожидаемых двух), но легко обходится программой Alcohol 120%, которая хоть и помещает на место первой секции "непотребный мусор", зато вполне корректно воссоздает оригинальный TOC.
Для усиления защиты мы можем попытаться не только проверять обе сессии на существование, но и контролировать целостность их содержимого. Разумеется, не обязательно "перелопачивать" каждую из секций целиком. Достаточно выбрать несколько ключевых секторов, желательно имеющих по возможности уникальное содержимое. Постойте! –— воскликнет внимательный читатель. Разве автор не предостерегал нас о последствиях такой проверки?! Ведь никто не может гарантировать, что на оборудовании пользователя эти сектора вообще прочтутся! Что ж, –— отвечу я. Закладываться на читабельность
секторов, действительно категорически не рекомендуется, но вот контролировать успешно просчитавшиеся сектора можно и нужно! То есть: если ключевые сектора не читаются, то все хорошо и нет никаких поводов считать диск нелицензионным –— это просто у конечного пользователя оборудование такое (в смысле что "кривое"). Другое дело, если чтение секторов прошло без ошибок, но вместо ключевых данных в них оказалось нечто совсем иное. Вот тогда, действительно, проблема не в оборудовании, а в диске.
Усиленный вариант защиты уже не копируется программой Alcohol 120% (т. к. вместо оригинального содержимого первой сессии она помещает на диск какой-то "дикий мусор"), но может быть скопирован вручную по методике, описанной ранее.К тому же, привязка к искаженному TOC элементарно "отламывается" в отладчике/дизассемблере. Как? Сейчас отвечу. Так что дальнейшее совершенствование защиты практически полностью бессмысленно. От "простых смертных" пользователей мы уже защитились, а от хакеров мы не сумеем защититься все равно (во всяком случаеслучае, не этим способом). В любом случае, более "продвинутые" защиты –— тема отдельного разговора.
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий