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

Навесная защита

Bit-hack (bit-hack@mail.ru)

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


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

Для тех, кто может

Люди, имеющие деньги, защищают свои программы с помощью другого подкласса упаковщиков – протекторов. Эти защитные системы специализируются на защите, а не на упаковке (хотя тоже упаковывают). Многие программисты считают, что защитные механизмы, написанные реверс-инженерами (пусть даже бывшими) принесут только зло и что реверс-инженеры будут их ломать сами… Это большая ошибка: тот, кто занимался или занимается реверсингом, лучше всех знают про всевозможные уловки, секреты и многое другое, что помогает создать действительно надежные защитные системы. А взлом программ, упакованных своим же протектором – неблагодарное дело, из-за которого популярность протектора может упасть навсегда. Надеюсь, эта статья развеет такие заблуждения. Какие же защитные системы распространены шире и популярнее остальных?

1. AsProtect – протектор, написанный отечественным программистом – Алексеем Солодовниковым (когда-то занимался взломом). Он создал действительно мощную систему защиты. Основные преимущества этого протектора:

1.1. Защита кода программы с помощью очень стойких криптоалгоритмов.

1.2. Защита таблицы импорта (в последних версиях протектора защита позаимствована из Obsidium).

1.3. Предоставление служебных функций для проверки регистрационных ключей и для многого другого.

1.4. Использование виртуальной машины, при помощи которой защищается главная ветвь кода программы.

1.5. Упаковка файла.

1.6. Хорошая техническая поддержка.

1.7. Сильная интеграция в код программы, очень серьезно мешающая при распаковке – приходится изощряться любыми способами и восстанавливать недостающий код.

2. Armadillo – довольно старый протектор, содержащий некоторые революционные технологии. Его основные преимущества:

2.1. Защита кода программы с применением очень стойких криптоалгоритмов.

2.2. Защита таблицы импорта.

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

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