Поддержка / Donate
 

WebMoney

Яндекс.Деньги

SMS.Копилка
Деньги@Mail.ru
Rupay
E-gold
PayPal

 

Благодарю за поддержку!

Лента RSS - Новости сайта Новости сайта
Лента RSS - Новости форума Новости форума
Добавить в закладки и поделиться Bookmark and Share

 

Архив исходников

 


Automatic translation

 
English German French
Italian Spanish Portuguese
Greece Japan Chinese
  Korean  

  

 

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Протекторы и упаковщики

Автор: Hex

Запихнув в windasm упакованную программу, начинающие делают квадратные глаза типа: "А.. эээ чо это такое?". Поговорим о упакованых прогах.

Написание прог большого размера конецчно же привело людей к мысли: "А не сжать ли это?". Когда нужно просто хранить прогу, то ее сжимают архиватором. А вот когда нужно сжать прогу и чтобы она разжималась в память юзают упаковщики. Т.е. прога становится считай что sfx архив, тока разархивация происходит в память, а не надиск. Естественно, если такой файл запихнуть в дизассемблер то кода проги явно не увидишь, это тоже самое что попытаться открыть вордом rar архив в котором лежит doc файл. Сначала разжать надо, а потом пихать в дизассемблер. Сначала когда упаковка была просто средством для уменьшения размера exe файла, сама прога упаковщик позволяла разжать упакованый ею файл. Но народ сразу понял, что упаковкой можно прятать код. Т.е. в дизассемблере реальный код не увидишь пока не распакуешь. Вот и начали делать упаковщики которые тока пакуют. Ну крэкеры тоже не тупые. Нету распаковщика - и не надо. Распаковать файл можно и вручную. Берется дебагер и спомощью него проходится весь распаковывающий кусок кода(распаковщик). В конце такого кода идет переход на Entry point оригинальной не упакованной проги. Тут нужно остановиться снять дамп. Т.е. дапм памяти будет соответсвовать распакованой программе, т.е. программе которая была вначале, до упаковки. Потом дампу ставят правильный Entry point, он явно виден в конце любого распаковщика. И получают практически одинаковую с оригинальной прогу. Программерам такой расклад не понравился. Толку от такой упаковки, если любой ламер с дебагером и дампером за 5 минут все на место поставит. И начались подлости и пакости. Одной из первых пакостей стала порча таблицы импорта. Заключалось это в том, что таблица импорта содержит имена функций и dll, по которым потом берутся адреса и создается IAT, так вот в упаковщик впихнули код который затирал эти имена. Т.е. IAT оставалось, а имен нету. Естественно дамп получался нерабочий. Крэкеры фишку просекли и начали ставить брейк поинты на функции которые могут испортить таблицу импорта, и без проблем все это дело обломали. Вот тут началась эра протекторов. Програмеры поняли что надо отобрать у крэкеров ихние любимые инструменты или сделать так, что с этими инструментами крэкерам было б очень тяжело отслеживать, то что происходит. Т.е. код распаковщика начали делать полиморфным. Потом начали вставлять антитрассировочный и антидебаговый код. И начались разные смеси полиморфных распаковщиков с разными приемами обнаружения дебагеров + код который создает IAT "вручную"(т.е. таблица импорта вобще не существует). Например Pcguard, tElock. Но крэкеры тоже руки сложе не сидели, сделали проги для прятанья дебагеров(icedump и frogsice) и проги для восстановления импорта по IAT(revirgin, imprec). Думаете на этом все заканчивается? Нееет это было тока 3 года назад. А щас все гораздо интереснее. Программеры нашли новыем методы обнаружения отладчиков которым плевать на icedump и frogsice. Потом началось клепания протекторов, которые забирают часть кода проги в себя. Т.е. отодрав протектор выходит не полный дамп, пусть даже и с правильным импортом. Это к примеру SVKP, ASProtect и Activemark. Код проги начали криптовать. Причем криптовать по извратному. Например Asprotect в зависимости от регистрационного ключа по разному распаковывает прогу. И последнее извращение - распаковщик на собственной виртуальной машине. Т.е. такой распаковщик выполняет псевдокод и контролировать его просто нереально. Это защита StarForce.

Вот такие пироги. Ты рад что ты сюда сунулся? Готов к гиморою? :) Не боись! Прорвемся! :) Казаки и Демиурги крэкеры сломали, reget тоже сломали. Все у нас получится :)




Источник - Проект "Delphi World" © Выпуск 2002 - 2004
Автор проекта: Акулов Николай



   Rambler's Top100             Яндекс цитирования