BitArts

eXeL@B DVD

Материал из Справочник исследователя программ

Перейти к: навигация, поиск

BitArts - является упаковщиком, который позволяет склеивать исполняемый exe-файл с зависимыми им dll. На практике, чаще всего встречался для упаковки приложений, написанных на Visual Basic, тянущие за собой MSVBVM60.dll. Ничего сложного из себя не представляет, импорт не портит.


Распаковка

Загрузив в отладчик, увидите вот такой пролог.

EntryPoint.PNG

Для распаковки необходимо установить точки останова на функции VirtualFree и по желанию на CreateFileA. Отпускаем приложение и пропускаем другие бряки, пока не остановимся на CreateFile. Вызывающий код выглядит следующим образом:

Bitarts.CreateFileCode.PNG

А в стеке видим путь, куда будет дропнут файл

Bitarts.CreateFileStack.PNG

Следующее, на чем остановится программа, будет сгенерированный пакером exception. Тут нужно быть аккуратным. Мы не должны обрабатывать его, поэтому, если работаем в olly, то жмем F9, а не Shift+F9

Bitarts.Raise.PNG

Предыдущие два exception будут вызываться для каждого прикрепленного файла.

После того, как все необходимые файлы будут сохранены на диске, мы должны остановиться на функции VirtualFree, причем дважды. Остановившись во второй раз, смотрим вызывающий код.

Bitarts.VirtualFree2.PNG

Переходим по выделеному переходу JE

Bitarts.Jmp1.PNG

Парой команд ниже видим переход с косвенной базовой адресацией от EBP. Ставим на него breakpoint и отпускаем выполняться. Остановившись на нем, трейсим, переходя дальше

Bitarts.Jmp2.PNG

Вот и переход на OEP. Можем снимать дамп и восстанавливать импорт.

Источник — «https://exelab.ru/faq/BitArts»