Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #53, АПРЕЛЬ 2005 г.

Защити себя сам

Денис Колисниченко

Спецвыпуск: Хакер, номер #053, стр. 053-028-2


Конечно, вся описанная ситуация немного надумана. Если твоя программа популярна, то в Сети уже есть полноценная взломанная версия, которую можно использовать, если демо-версия понравилась. Но несколько первых пользователей все равно заплатят деньги. И будь уверен: сами эти пользователи ни за что не опубликуют где-то на сайте их собственные версии, потому что сработает "Я ж за нее деньги заплатил!". Другое дело, если у них ее кто-то может украсть или они смогут ее продать за полцены. В этом случае нужно придумать такой алгоритм, который бы препятствовал запуску программы на другом компьютере.

Серийные номера

Вот мы только и говорим о серийном номере. А как написать эффективный алгоритм генерирования серийных номеров, чтобы номер было трудно подобрать? Если ты не математик, лучше воспользоваться какой-нибудь программой, позволяющей управлять серийными номерами, чем писать "очень сложный" алгоритм, который в качестве серийного номера принимает сумму кодов символов введенного регистрационного имени… Говорю "Не нужно так делать", но найдется хотя бы один читатель, который подумает: "Отличная идея!"… Еще раз повторяю: вместо такого алгоритма воспользуйся какой-нибудь программой. Понимаю, что стандартные решения стандартно и взламываются, но для первой версии твоей программы этого будет достаточно. Одну из таких программ мы рассмотрим в этой главе, а пока поговорим о дизассемблировании.

Защищаем алгоритм

Ты же не хочешь, чтобы твой алгоритм генерации был взломан за пару часов с помощью какого-нибудь дизассемблера. Как это так получается? Есть такая целая наука - reverse engineering, по-нашему – обратная разработка (проектирование). Ты написал программу, компилятор ее откомпилировал – на выходе exe-файл, как обычно. Другой человек запускает дизассемблер (или какой-нибудь отладчик вроде SoftICE) и буквально "по косточкам" разбирает твою программу. Ясно, что сам исходный код он не увидит (впрочем, это зависит от опций компилятора), то есть он увидит не If Serial.Text= …, а то, что ему нужно. Поверь, если человек этим занимается, он знает, куда смотреть. По сути, он проходит обратный путь: его исходный код – это твой exe-файл. Отсюда и название – обратное проектирование. Чтобы твоя программа была недоступна для большинства отладчиков и дизассемблеров, используй специальные программы, изменяющие exe-файл так, что его невозможно дизассемблировать. Защитив таким способом свою программу, сможешь спать спокойно – твой алгоритм никто не узнает.

EXECryptor

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

Назад на стр. 053-028-1  Содержание  Вперед на стр. 053-028-3