Шаг 104.
Отладчик W32Dasm. Начало работы

    На этом шаге мы рассмотрим основные возможности отладчика W32Dasm.

    Программа W32Dasm (Windows Disassembler) представляет собой симбиоз довольно мощного дизассемблера и отладчика. Начиная с версии 8.93, программа может работать не только с РЕ-модулями, но и DOS-, NE-, LE-модулями.

    Внешний вид программы показан на рисунке 1.


Рис.1. Внешний вид программы W32Dasm

    Меню дополняется панелью инструментов, элементы которой активизируются в зависимости от ситуации.

    Как уже было сказано, программа является дизассемблером и отладчиком в одном лице. Это отражено также в двух пунктах меню: Disassembler и Debugger. Соответственно, имеются отдельные настройки для дизассемблера и отладчика. Для дизассемблера имеется всего три опции, касающиеся анализа перекрестных ссылок в условных переходах, безусловных переходах и вызовах процедур. По умолчанию все три опции установлены. Отмена этих опций нежелательна, т.к. снижает информативность дизассемблированного текста. В принципе, отмена указанных опций может понадобиться при дизассемблировании очень большой программы, для некоторого ускорения работы.

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


Рис.2. Опции отладчика

    Для начала работы с исполняемым модулем достаточно выбрать нужный файл с помощью команды Disassembler | Open File to Disassembe.... После этого программа производит анализ модуля и выдает дизассемблированный текст, а также весьма полную информацию о секциях модуля. W32Dasm весьма корректно распознает API-функции и комментирует их (рисунок 3).


Рис.3. Фрагмент дизассемблированного текста

    После работы с модулем можно создать проект работы при помощи команды Disassembler | Save Disassembly Text File and Create Project File. По умолчанию проект сохраняется в подкаталоге wpjfiles, который расположен в рабочем каталоге W32Dasm и состоит из двух файлов: с расширением ALF - дизассемблированный текст, с расширением WPJ - собственно сам проект. При повторном запуске можно открывать уже не модуль, а проект с помощью команды Project | Open Project File.

Передвижение по дизассемблированному тексту

    При передвижении по тексту текущая строка подсвечивается другим цветом, при этом особо выделяются переходы и вызовы процедур. Передвижение облегчается также с помощью пункта меню Goto:

    Другим способом передвижения по дизассемблированному тексту является пункт меню Search (Поиск). Здесь нет никаких отличий от подобных команд других программ.

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

    Кроме того, те адреса, куда производится переход, содержат список адресов, откуда производятся переходы. Подсветив строку, где расположен адрес, и дважды щелкнув правой кнопкой мыши по этому адресу, мы перейдем к соответствующей строке.

    На следующем шаге мы продолжим знакомство с возможностями отладчика W32Dasm.




Предыдущий шаг Содержание Следующий шаг