-Поиск по дневнику

Поиск сообщений в Falling_802_13

 -Подписка по e-mail

 

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 19.07.2010
Записей:
Комментариев:
Написано: 42


Отладчики

Четверг, 12 Августа 2010 г. 13:57 + в цитатник
Olly Debugger 1.10

Самый продвинутый ring-3 отладчик из всех имеющихся на сегодняшний день, к тому же бесплатный (в просторечии - Ольга или Олли). Основное преимущество - огромное количество плагинов, способных решить практически любую задачу и обломать рога даже крутым защитам. Недостаток - "движок" отладчика работает через MS Debugging API, страдающим кучей врожденных ограничений, оставляющим за собой множество трудноудаляемых следов и представляющим легкую мишень для антиотладочных технологий, для борьбы с которыми приходится писать довольно сложные плагины, зачастую работающие на уровне нулевого кольца (т.е. устанавливающие свой собственный драйвер). Другой недостаток - графический интерфейс, причем часть действий выполняется только мышью, ненавистной хакерам старого поколения, предпочитающих консоль и клаву.

Olly Debugger 2.00с pre-alpha 3

Экспериментальный отладчик с полностью переписанным debug engine и жестко урезанным функционалом (по сравнению с версией 1.10). Тем не менее, debug engine по-прежнему использует MS Debugging API и это по-прежнему ring-3 отладчик со всеми вытекающими отсюда ограничениями.
IDA Pro Advanced 5.2

Включает в себя довольно примитивный ring-3 отладчик, работающий через MS Debugging API (в NT) и через библиотеку ptrace (в UNIX), что делает его легкой добычей для защитных механизмов, причем готовых анти-антиоладочных плагинов под ИДУ - раз, два и обчелся, тем не менее при наличии SDK всегда можно написать свой собственный, только вместе с этим еще придется писать кучу недостающего функционала, уже реализованного у конкурентов. Пожалуй, единственное преимущество интегрированного отладчика - возможность отладки подопытного кода прямо "на месте" (just in the place), без выхода из дизассемблера. Поддерживаются как графические, так и консольные режимы (в UNIX - только консоль).

IDA Pro - коммерческий продукт, причем большинство "варезных" версий, гуляющих в сети, работают крайне нестабильно и постоянно падают, поэтому имеет смысл остановиться на бесплатной (и, естественно, нереально урезанной) версии 4.9.

Microsoft Debugger 6.8.4.0

Входит в состав WDK (Windows Driver Kit - бывший Driver Development Kit или DDK), а также в комплект Debugging Tools. Оба они бесплатны, но WDK намного больше по объему и требует предварительной регистрации для получения Windows Live ID (проверка валидности Windows при этом не осуществляется), в то время как Debugging Tools раздается без регистрации вместе с SDK, в которую входит документация, заголовочные файлы, библиотеки и пара примеров, как надо писать плагины. К сожалению, сторонних плагинов под Microsoft Debugger очень немного.

Microsoft Debugger может работать как в на прикладном уровне (ring-3), так и на уровне ядра. Вплоть до XP ядерная отладка требовала как минимум двух машин, соединенных COM-шнурком, но теперь достаточно и одной.

Поставляется в двух редакциях: windbg.exe - графический интерфейс и cdb.exe - интерфейс командой строки. Но все они являются лишь тонкими обертками вокруг dbgeng.dll, в которой, собственно, и реализован основной отладочный "движок", протокол обмена с которым документирован и потому dbgeng.dll можно использовать в качестве "фундамента" при написании универсальных распаковщиков исполняемых файлов (чтобы в очередной раз не писать трассер с нуля).

Soft-Ice 2.6.0 (Build 336)

Легендарный отладчик ядерного уровня всех времен и народов. Работает в обход MS Debugging API, что значительно усложняет антиотладку, однако учитывая, что для разработчиков защит soft-ice - враг номер один, практически все протекторы легко распознают присутствие soft-ice в системе, и без специальных расширений (которые мы будем упоминать по ходу дела) никак не обойтись.

Обозначенная версия не является последней, но зато стабильной и хорошо совместимой с хакерскими плагинами, "вгрызающимися" в отладчик без всякого API (путем bit-hack'а). С более новыми версиями хакерские плагины несовместимы. С другой стороны, Soft-Ice поддерживает плагины, написанные для MS Debugger, а вот обратной совместимости, увы, не наблюдается.

В настоящее время поддержка soft-ice прекращена и продукт похоронен. Он еще совместим с XP и Server 2003 (хотя на многоядерных процессорах уже наблюдаются серьезные проблемы), но в долгосрочной перспективе soft-ice обречен и необходимо искать ему замену. Причем, чем скорее - тем лучше.

Syser 1.95.19000.0894

Достойная альтернатива умирающему soft-ice. Ядерный отладчик, поддерживающий многопроцессорные машины и всю линейку NT-подобных систем, до Висты включительно. Это коммерческий продукт, написанный двумя китайскими хакерами: Wu YanFeng и Chen JunHao, предоставляющими всего лишь семидневный бесплатный триал, что оскорбительно мало, однако поскольку мыщъх вливается в Syser team, то рассказывать о том, как его ломать, не собирается (хотя ломается он легко). С другой стороны, в настоящий момент готовится книжка "Техника отладки II" с полной версий Syser'а на компакт-диске, осталось лишь немного подождать, чтобы заполучить это чудо.

Нас ждет графический интерфейс, к которому поначалу очень трудно привыкнуть, но в остальном - это все тот же самый soft-ice - во всяком случае, с точки зрения синтаксиса команд. Другое преимущество - будучи в team'е мыщъх плотно работает вместе с разработчиками над усилением обороноспособности отладчика, в смысле - стойкости к антиотладке. Плюс возможность подключения внешних плагинов (правда, плагины для Syser'а мыщъху неизвестны, кроме пары штук, написанных им самим, да и то в порядке эксперимента).

GDB 6.1

GNU Debugger - основной отладчик под UNIX, ориентированный на совершенно иной тип мышления, чем все вышеперечисленные отладчики. Это не просто интерактивный отладчик, скорее это станок с программным управлением, невероятно гибкий и мощный (в плане интерфейса). Отлаживать "честные" программы - одно удовольствие, а вот в плане антиотладки GDB даже и не пытается сопротивляться и работает через библиотеку ptrace, которая на самом деле никакая не библиотека, а системный вызов. Но это неважно. Важно другое - GDB принципиально не способен отлаживать программы, которые не хотят, чтобы их отлаживали. И такие программы мало-помалу уже начинают появляться (взять хотя бы упаковщик исполняемых файлов от Shiva).

Обозначенная версия GDB собрана в 2004 году и к новым билдам, очевидно, не относится, однако поскольку основной debug engine реализован не в GDB, а сосредоточен в ядре системы, то версия GDB решающего значения не имеет.

Естественно, помимо GDB существуют и другие отладчики, например, Lin-Ice, но... поскольку антиотладочные технологии под UNIX только-только начинают развиваться, для наших экспериментов вполне сгодиться и GDB.

источник: "энциклопедия антиотладочных приемов"
Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку