![]() |
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс |
Новичку | Ссылки | Программирование | Интервью | Архив | Связь |
Общие аспекты паковки и распаковки программОбсудить статью на форумеОчень удобно, когда все крэкерские инструменты, книги и статьи в одном месте. Используйте сборник от EXELAB - вот тут. Прелюдия .....
Сейчас появилось огромное количество статей по анпаку.
Я попытался дать общее представление об этом процессе. Статья теоритическая.
Назначение
Паковка программ изначально была придумана для уменьшения размеров
файлов. Это основная её функция и по сей день.
Но в то же время она является дополнительным комплексом защиты .
Во-первых, запакованный файл в большинстве случаев нельзя дизассемблировать, так как в теле файла присутствуют секции с запакованными данными , а собсственно код распаковщика многие дизассемблеры не в состоянии принять за что-то значимое. [Примером такого инструмента является win32dasm, и в некоторых случаях IDA]. Вследствие этого затрудняется нахождение нужного джампа , etc .... Во-вторых, пакованные программы труднее патчить, чем незапакованные. Так как в некоторых паковщиках присутствует проверки на валидность длины, контрольной суммы файла, тд .... Но все же возможность патча файла, с дальнейшей его работоспособностью, возможна . Тонкости - ниже ... В-третьих, программисты начали добавлять функции определения как конкретного отладчика, так и функции определения самого факта отладки, а также определение мониторинга реестра, обращений к файлам [файловые мониторы и мониторы реестра такие, как FileMon, RegMon ]. Принцип работы паковщиков
Общий принцип работы и3ложен в таблице ....
___________________________________________ I I I Начало выполнения кода упаковщика [EP]* I I___________________________________________I_ I I--_ I Вы3ов[a] ф-ций 3ащиты от отладки , I | I проверка контрольной суммы , etc I \ I ["код протекции"] I > Непосредственное выполнение кода , I___________________________________________I > который "cуществует" в файле .. I I | I Распаковка кода программы в память I _/ _I___________________________________________I-- I I--_ I Прыжок на распакованный в памяти I \ Начало выполнение распакованного кода , I код программы [OEP]** I _/ те непосредственно кода программы I___________________________________________I--
Некоторые паковщики выполняют "код протекции" после распаковки, а некоторые вообще
не предоставляют данной возможности.
Ручной или автоматический анпак ? Патчим пакованную прогу
Cуществует множество как паковщиков, так и распаковщиков. Но не к каждому представителю
первого типа можно найти программу - анпакер [или скрипт для ProcDumpa]. Поэтому многие
исследователи используют так называемую "ручную" распаковку. Суть этого действа такова ....
0) Меняем 3начение свойства секций на E0000020, загружаем прогу при помощи S-I loader'a. 1) Трассируем программу [этот процесс 3анимает довольно много времени, если правильно не пользоваться брейкпоинтами и не пропускать длительные циклы] 2) В результате трассировки мы найдем OEP . 3) Теперь мы зацикливаем программу. [В сайсе это будет выглядеть следующим образом: дойдя, но не выполняя прыжок на OEP, набираем a eip 4) ProcDump'om или любым другим дампером делаем дамп нашей 3адачи[подопытная программа] + сохраняем его на диск . 5) Теперь тем же ProcDump'om надо исправить EP в нашем дампе. Значение надо Заменять на следующее : Значение = OEP - Image Base. Все теперь наша программа распакована - мы можем продолжать исследование. 3десь не описана процедура восстановления импорта, так для каждого пакера она разная. Теперь рассмотрим ситуацию, когда мы знаем байты для патча, и нам надо произвести их замену. Делать мы это будем так :
Начало распаковщика часто собровождается коммандой "pusha" , конец - "popa" , прыжок на OEP - jmp*EP [entry point] - начало выполнение кода программы **OEP[original entry point] - термин , придуманный специально для пакованных прог , адрес , с которого начинается выполнение распакованного в памяти кода собственно проги[не распаковщика!] ProcDump - 3aмечательная утилита [сочетает в себе ф-ции PE-editora,анпакера и некоторых других] Если вам что-то непонятно или у вас возникли денежные предложения - пишите by Dr_Net //TSRh //UOFG mail : dr_net@uofg.cc Перепечатано с разрешения www.uofg.com.ua Материалы находятся на сайте https://exelab.ru ![]() |
Вы находитесь на EXELAB.rU |
![]() |