Автоматические распаковщики

К автоматическим распаковщикам относятся программы, запускающие в автоматическом или полуавтоматическом режиме защищаемую программу и отслеживающие типовые участки startup-кода и соответственно настраивающие relocations.

Функция автоматических распаковщиков - сдирание защиты с файла и получение работоспособного EXE файла. Физика данного процесса такова: перехватывая первое программное прерывание, вызванное программой после отработки защиты, распаковщик снимает дамп памяти с уже расшифрованным кодом защищенной программы. Первый этап работы по снятию - нахождение этого самого первого прерывания. Это делается при помощи любого отладчика. Не будем вдаваться в подробности отлова первого прерывания, замечу лишь одно - все программы написанные на C/C++ и откомпилированные компилятором любой фирмы одной из первой командой проверяют версию OS:

B4 30 mov ah, 30h CD 21 int 21h

В программах, написанных на Паскале идет перехват векторов 00 и некоторых других:

B4 35 mov ah, 35h CD 21 int 21h

Если посмотреть ссылку на это место, то можно увидеть, что этот фрагмент вызывается после двух far call-ов:

call far Initturbo call far SwapVectors

Таким образом можно найти истинную точку входа в паскалевскую программу.

1. Autohack by BCP group
Предоставляет три варианта запуска:

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

2. Стандартный режим взлома. Режим работы программы основанный на режиме перехвата определенных моментов после отработки механизма защиты и сброса дампов памяти.

3. Режим взлома с поддержкой таблиц компиляторов. Идентичен второму режиму, но нацелен на определенные компиляторы, поэтому взламывает более корректно. о если взламывается программа откомпилированная неизвестным AutoHack-у компилятором, то произойдет запуск взламываемой программы с последующими глюками.

2. Intruder by Creat0r
Отслеживает startup-код.

SnapShot by Dale Co.

CUP by Cyberware products

UNP by B.Castricum

Tron

TSUP

Дизасемблеры

Дизасемблер переводит выполняемый код в листинг на асемблере.

Прочие программы

К прочим программам можно отнести программы ориенитированные на специальные языки, например:

  • Clipper

Valkyrie Declipper 5, Version 1.0, Revision K

"+" Есть возможность анализиpовать низкоуpовневый код, декомпиляция до исходных текстов
"-" Может pаботать только с известными ему линковщиками, если линковщик ему не известен, то он отказывается pаботать.

Hackers Declipper v1.3 by KrK //UCL

"+" Позволяет анализиpовать низкоуpовневый код, можно самостоятельно задать начало псевдокода и таблицы имен пеpеменных.
"-" Полностью pучная pабота пpи декомпиляции, не pаспознает начала пpоцедуp, не создает исходного текста, и т.д и т.п.

Rescue5 v1.0 CA-Clipper decompiller

"+" Декомпиляция до исходников.
"-" Понимает очень мало линкеpов, нет возможности анализиpовать псевдокод

  • FoxPro

ReFox

Программы типа Hiew (Hacker's view by SEN), позволяющие просмотреть код, изменить его, дизасемблировать участки кода.

Отладчик SoftIce

SoftIce - это универсальный отладчик, которым можно проанализировать и отладить любой код, включая подпрограммы прерывания и драйверы ввода-вывода. SoftIce состоит из отладчика уровня ядра (kernel mode debugger) (собственно это и есть отладчик) и загрузчика отладочной информации (Symbol Loader). Утилита Symbol Loader (SL) загружает отладочную информацию для вашего модуля, позволяет настроить SoftIce, и дает возможность записать историю команд (history buffer) в файл.

Возможности SoftIce:

  • Символьная отладка 32-битных приложений, отладка драйверов устройств для WIN NT, драйверов для WIN95, VxD, 16-битных программ для DOS и Windows.
  • Отладка фактически любого кода, включая подпрограммы прерывания и внутренние подпрограммы WIN 95 и WIN NT.
  • Установка точек останова на операции чтения/записи в память, чтения/записи портов ввода-вывода, прерываний.
  • Установка точек останова на сообщения Windows.
  • Установка точек останова, срабатывающих при определенных условиях (условных точек останова) и действий которые должны произойти при срабатывании точки останова.

Утилита SL позволяет прочитать отладочную информацию из отлаживаемых программ (EXE, DLL, VxD, 386, OCX) и загрузить ее в отладчик, запустить ваше приложение и автоматически установить точку останова на точку входа в программу, записать в файл протокола отладки.

В поставку SoftIce входит пример GdiDemo.