Данный раздел посвящен отладке с использованием 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-х разрядную платформу).
Мои скрипты, расширения и часто используемые команды
Что нового в Windows Debugger 10.0.15063.0
WinDbg 10.0.10075 получил поддержку .NatVis-файлов
WinDbg 10.0.10041.3 не совместим с Windows 10 10074
[PHDays] Автоматизация отладки в WinDbg
WinDbg 6.3.9600: новые возможности отладки
Визуализация графа вызовов на основе лога команды wt
Полный дамп падения с Windows 8 Developer Preview - повод обновить WinDbg
Debugger Markup Language (DML): краткий обзор
Часто используемые команды отладчика
Библиотека kdek_ext.dll расширений отладчика WinDbg
Создание PE-файла по загруженному в память образу, используя расширение к WinDbg:
Некоторые параметры командной строки отладчика
Прямые ссылки для скачивания отладчика WinDBG
ΞρεΤΙκ