Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 12 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Основной способ распаковки ASPack 2.000-2.12

Обсудить статью на форуме

Массу крэкерских инструментов, видеоуроков и статей вы сможете найти на видеокурсе от нашего сайта. Подробнее здесь.

Автор: FEUERRADER <feuerrader@nm.ru>


        Цель: ручная и автоматическая распаковка ASPack
 Инструменты: SoftIce 4.05 + IceDump, ProcDump 1.6.2, HiEW 6.x.
 

Введение в курс: я уже писал о том, как распаковать ASPack 2.12 используя команду /tracex из IceDump. Но это лишь побочный способ и не самый рациональный. Основным способом же, я считаю является описанный ниже.

Действия: выбираем нашу цель для распаковки. Я опять игрался с CommandLine95. Открываем прогу в Hiew и ищем такие байты: 61 75 08 B8 01 00. То есть такой код:

 61              POPAD
 7508            JNZ xxxxxxxx
 B801000000      MOV EAX, 00000001
 C20C00          RET
 6880xxxxxxx     PUSH OEP
 C3              RET

В ASPack 2.1 и ниже в 6880xxxxxxx идет push на ОЕР, где ОЕР явно указано. Но уже в ASPack 2.12 - PUSH 00000000 и ОЕР в это место генерится в памяти. Теперь запоминаем это место в Hiew (адрес POPAD), запускаем SoftIce+IceDump и пишем :bpx GetProcAddress. Это нужно для того, чтобы просто прерваться в нашей проге; для этого, жмем F12 и если там не наша прога, то жмем F5. Всё, видим, что указана наша прога. Теперь делаем :bc* и ставим :bpmb "адрес_popad" x, F5. Теперь прога прерывается в нужном нам месте.

 016F:004113AF  POPAD
 016F:004113B0  JNZ       004113BA
 016F:004113B2  MOV       EAX,00000001
 016F:004113B7  RET       000C
 016F:004113BA  PUSH      00403FF0
 016F:004113BF  RET

Трассируем по F8 до 4113BF и выполняем ret. Теперь EIP=OEP. Теперь можно дампить. Делаем так: /dump 400000 14000 c:\dump.exe или можно этот ret превратить в JMP EIP, то есть зациклить и снять дамп с помощью LordPE. Дампу осталось сделать dumpfixer и всё. На этом ручная распаковка может считаться оконченной.

Автораспаковщик: итак, когда мы знаем, что во всех прогах используется один и тот же набор байт, то можно создать распаковщик, который будет останавливаться в нужном месте и снимать дамп. Но зачем писать его самим, он уже есть. Я не говорю о ASPackDie, я говорю о ProcDump! Какие же скрипты есть у ProcDump'a для распаковки ASPack? Последняя версия скрипта расчитана на ASPack 2.000. Эта версия подходит под этот способ! Можно использовать этот скрипт для распаковки ASPack 2.000-2.12. Но давайте добавим к ProcDump свой скрипт по распак0вке именно ASpack 2.12.
Открываем script.ini из папки ProcDump. Ищем секцию [INDEX], где собрано описание всех скриптов-распаковщиков. Добавляем туда: Pxx=Aspack 2.12. Создаем свою секцию:

 [Aspack 2.12]
 L1=OBJR
 L2=LOOK 61,75,08,B8,01,00
 L3=JZ 4
 L4=QUIT
 L5=BP
 L6=STEP
 OPTL1=00000000
 OPTL2=01010001
 OPTL3=01010001
 OPTL4=00030000
 OPTL5=00000000

Работа этого скрипта проверялась на многих прогах (System Mechanic, CheMax...) и везде проявила себя отлично.

Выводы: вроде бы разрекламированный паковщик этот ASPack, а распаковать - ничего не стоит. Но тут нужно учесть, что это не криптор, а простой сжиматель-упаковщик!

Спасибо за интерес к этой статье!



Все права защищены ©  2003 


Комментарий Bad_guy'я: замечательная статья, хоть и небольшая, а замечательная... Многие уже давно списали ProcDump со счетов: нет обновлений - не будем юзать, а ведь система поддержки скриптов в нем весьма хороша, что и доказывается в данной статье, и можно не имея всех распаковщиков для каждого из упаковщиков пользоваться одним лишь ProcDump'ом, написав однажды скрипт.
Начинающим крэкерам, кстати говоря, весьма полезно изучить ручную распаковку одного пакера, ведь зная подходы к ручной распаковке любого из пакеров другой распаковать будет очень легко. Те же ASPack, PECompact, UPX ничем принципиально не отличаются и ловить место прыжка на распакованный оригинал в них можно аналогично тому, как описано в данной статье.


Обсуждение статьи: Основной способ распаковки ASPack 2.000-2.12 >>>


Комментарии к статье: Основной способ распаковки ASPack 2.000-2.12

Pafik 28.02.2005 02:44:17
Статья хороша и понятна. Вот было бы здорово, если бы авторп пошел дальше. После распаковки и обработки файла в ImpReg и т.п. все равно остается гадость в секциях - здорово убиваютсч ресурсы. Хороше если без проблемм восстановился импорт и STRING, а RCdata в дельпи страдает особенно часто. Вот бы об этом так же доходчиво
---
RUslan 28.08.2005 10:12:38
Статья интересная. Но вот проблема я ни как не могу востановить импор.
---

Материалы находятся на сайте https://exelab.ru



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS