EreTIk's Box » Заметки о WinDbg


Данный раздел посвящен отладке с использованием WinDbg. Это, с одной стороны, мощное средство отладки. Обилие внутренних команд и макросов позволяет довольно глубоко заглянуть внутрь происходящего в системе. Но есть и "ложка дегтя", точнее их две:

  • Невероятное количество глюков. Из-за их огромного количества у меня часто возникает ощущение, что в MS'е пользуются совершенно другим средством отладки.
  • Окно дизассемблера, которое невозможно использовать. Мало того, что при дизассемблировании отладчик начинает "выдумывать" смещения, относительно символов (что-то вроде _except_handler+0x102). Так еще и пользоваться прокруткой в окне дизассемблера просто невозможно.

В целом, я стараюсь пользоваться только окном команд. Ну и окна исходников, когда они доступны.





Проекты, связанные с отладкой с использованием WinDbg


*** Virtual KD


Отличный проект, который упростит жизнь всем, при отладке виртуальной машины: Virtual KD. Booster для отладки виртуальных машин VMWare и VirtualBOX. Полность открытый исходный код, небольшое количество глюков, сборки под платформы x32 и x64. Для желающих "пореверсить" протокол удаленного взаимодействия отладчика заботливо предусмотрен режим сохранения логов транспорта.


*** PYKD


Автоматизация работы с WinDbg с использованием скриптов на языке Python - PYKD. Проект развивается в 2-х направлениях: как расширение к WinDbg и как модуль работы с Debugger Engine. Первое позволяет писать py-скрипты для исполнения их в отладчике, а второе направление позволяет использовать отладочные средства Windows из интерпретатора python.exe: запуск процесса под отладкой, анализ аварийных дампов памяти и т.п.

Есть русскоязычный блог - Python windbg extension.


На одной из страниц документации я веду (и пополняю время от времени) список полезных ссылок по написанию расширений в WinDbg


*** KDAR


Набор скриптов, для анализа "живой системы": KDAR. Проверяет множество узких мест ядра на предмет перехватов или иных аномалий. Может использоваться для выявления rootkit'ов по kernel dump'ам или для анализа установленных перехватов вполне легальными продуктами. Например, для выявления несовместимостей не совсем честных перехватов :).

Пока поддерживается только i386 платформа, но в будущем планируется перейти на PYKD и добавить полную поддержку AMD64 (сейчас часть скриптов не рассчитаны на 64-х разрядную платформу).





Мои скрипты, расширения и часто используемые команды


vbox_kd - небольшой набор скриптов для автоматизации запуска отладчика WinDbg при работе с VirtualBox


WinDbg 10.0.10075 получил поддержку .NatVis-файлов


WinDbg 10.0.10041.3 не совместим с Windows 10 10074


[PHDays] Автоматизация отладки в WinDbg


WinDbg 6.3.9600: новые возможности отладки


Расширение !alpc для WinDbg


Визуализация графа вызовов на основе лога команды wt


Полный дамп падения с Windows 8 Developer Preview - повод обновить WinDbg


Особенность инициализации расширения отладчика: вызовы DebugExtensionInitialize / DebugExtensionUninitialize


Debugger Markup Language (DML): краткий обзор


Часто используемые команды отладчика


Библиотека kdek_ext.dll расширений отладчика WinDbg


Создание PE-файла по загруженному в память образу, используя расширение к WinDbg:

!kdextmod.pedump


Скрипты для отладчика WinDbg


Некоторые параметры командной строки отладчика


Прямые ссылки для скачивания отладчика WinDBG


ΞρεΤΙκ