В настоящее время современные хакеры используют обширный инструментарий. Его можно подразделить на следующие группы:
- отладчики реального режима
- отладчики V86
- эмуляторы
- автоматические распаковщики
- дизассемблеры
- прочие программы
В свою очередь первые две группы опять разделяются на использующие стек отлаживаемой программы и неиспользующие его.
Отладчики реального режима
Наиболее известные:
1. TurboDebugger by Borland International
Созданный в 1988 году двумя братьями Chris'ом и Rich'ем Williams Содержит множество ошибок, активно используемых защитами, таких как:
a. использование стека отлаживаемой программы
b. использование int 1, int 3 для трассировки
c. перехват прерываний int 0, int 1, int 3
d. некорректная работа с видеобуфером
e. некорректное выставление начальных значений регистров
API отсутствует.
Обладает чрезвычайно развитым оконным интерфейсом, предоставляет возможности по просмотру кода и исходного текста программы, шестнадцатеричного дампа, переменных (при наличии отладочной информации), созданию макросов, отличается завидной медлительностью, связанной с подкачкой оверлея.
2. CodeView by Microsoft
По своим ошибкам ничем не отличается от TurboDebugger'a. Поддерживает собственный формат отладочной информации. В силу устройства самого ядра отладчика не приспособлен в качестве среды для взлома.
3. AFD
Созданный в 1988 году H.Puttkamer'ом отладчик предоставляет следующие возможности: пошаговый режим исполнения инструкций, пошаговое исполнение подпрограмм, сохранение точек останова в пользовательском файле, поиск данных в памяти, создание макросов и запись их в файл. Для использования в качестве среды для взлома не предназначен.
4. Debug
Одним из самых первых отладчиков, существовавших для IBM PC, является отладчик DEBUG, поставляемых с операционной системой MsDos. Содержит все ошибки отладчиков реального режима. В настоящее время нигде не используется.
На сегодняшний день отладчики реального режима не представляют интереса, т.к. весь современный софт в реальном режиме не работает.
Отладчики защищенного режима
1. TurboDebugger/386 by Borland International
Надстройка над TD, представляющая device-driver TDH386.Sys (низкоуровневый интерфейс сопроцессором) и запускающую программу TD386, вводящую процессор в режим V86. Полностью поддерживает ошибки своего предшественника. Предоставляет возможность установки аппаратных точек останова: по обращению на чтение/запись байта в памяти, перекрытие обращения к портам (не всегда корректно обрабатываемое).
2. Soft-Ice by Nu-Mega Techologies
Hаиболее мощный отладчик. Поддержка VCPI. Есть разновидности под Win95/WinNT
Содержит также некоторые ошибки:
a. Hе является полностью stealth-отладчиком, так как оставляет кусок своего кода в conventional memory V86 машины.
b. Существует API между программой и отладчиком
c. S-Ice можно обнаружить по устройству SOFTICE1
d. Загрузчик LDR неправильно выставляет значение SP
e. некорректное выставление начальных значений регистров
Предоставляет API через int 3, функции 09-13h. Поддерживает отладочную информацию Microsoft ('NB' в начале отладочной информации), Borland (db 0FB52h)
3. Soft-Ice/W by Nu-Mega Techologies
Отладчик под Windows 3.xx. Обнаруживается по присутствию VxD устройства WINICE. Отслеживает конструкции вида cs:pushf.
4. Deglucker by S.Gorokhov & A.Ilyushin
Ошибки:
a. Переключение в нестандартный видеорежим
b. Hевозможность перехвата портов ввода/вывода
c. запирание клавиатуры через i/o портов 60h/64h
Предоставляет API через int 15h функции 0FFxxh. Трассирует программу через DRx (аппаратные регистры останова).
Эмуляторы
1. EDB by Serge Pachkovsky
Эмулятор 80286 процессора. Крайне убогий интерфейс, на уровне DEBUG. Имеется возможность просмотра/изменения памяти, несколько режимов эмуляции.
2. Soft Debugger
Полноценный эмулятор 80386, без поддержки функций защищенного режима. Поддерживает отладочную информацию компиляторов Borland International. Отслеживает изменение байтов в конвейере, имеется несколько режимов эмуляции: с вызовом собственного int 1/int 3, режим Full Tracing, Auto Tracing и другие.
3. SD by Dmitry Groshev
Удобный и мощный сервис. Гибкие возможности для работы с самыми разнообразными структурами данных. Может подгpyжать сеpвисные модyли.