Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #45, АВГУСТ 2004 г.

Инструменты мастера

Фридрих Бывалый

Спецвыпуск Xakep, номер #045, стр. 045-078-2


Есть отличная идея: написать для IDA Pro модуль, который будет искать в дизассемблируемой программе переполнение буфера и выдавать о нем всю информацию (положение буфера, адреса возврата). Кто возьмется – пишите мне, помогу если не советом, то добрым словом!

W32Dasm

А это мой любимый дизассемблер. Хоть у меня на винте валяется и IDA, и Sourcer, и куча других подобных инструментов, предпочтение я отдаю именно WDasm. Проверенный временем, это второй по популярности дизассемблер после IDA (но, к сожалению, не второй по функциональности). Многим он нравится из-за удобного способа навигации по коду с помощью клавиш up\down\left\right и Windows-интерфейса. Мне же он приглянулся тем, что всегда показывал, где и какая текстовая строка была использована, пусть даже она располагалась в ресурсах.

Также в WDasm имеется встроенный отладчик уровня приложения, который хоть и не может составить конкуренцию таким монстрам, как Soft-Ice или KD, но иногда бывает полезен.

Kernel Debugger

http://msdn.microsoft.com

Мощный отладчик уровня ядра, входящий в пакет разработки драйверов ядра DDK (Device Driver Kit). До появления в сети исходников Windows единственным источником информации о внутренних структурах ядра служил как раз этот отладчик. Именно этим инструментом пользуется знаменитый Свен Шрайбер в своей книге "Недокументированные возможности Windows 2000", с помощью него он отлаживает свои хитроумные драйверы. Профессионалы говорят, что Kernel Debugger плавно догоняет по функциональности Soft-Ice. Ну а при анализе дампа памяти ему вообще нет равных.

Кстати, в отличиe от продута Numega этот отладчик бесплатен. Его можно свободно скачать с сайта Microsoft из раздела для разработчиков.

Компиляторы ассемблера

FASM

http://flatassembler.net/

Плоский ассемблер (Flat Assembler) – недавно появившийся, но уже завоевавший широкую популярность компилятор. Переносимость (FASM работает под Win32, Dos и Linux), быстрота, компактность дистрибутива и постоянное развитие проекта – вот что сделало возможным такую положительную реакцию на него кодеров.

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

Переносимость этого ассемблера позволяет не прыгать к другому компилятору (и не вспоминать его синтаксис и хитрые особенности) сразу же, как только появилась необходимость написать shell-код под *nix. А к миленькому редактору, находящемуся в дистрибутиве, с подсветкой кода очень быстро привыкаешь.

Назад на стр. 045-078-1  Содержание  Вперед на стр. 045-078-3