Введение в реверсинг с нуля, используя IDA PRO. Часть 32.

Дата публикации 26 фев 2018 | Редактировалось 26 фев 2018
Подготовка WINDBG для работы с IDA.

Один из инструментов, который нам необходимо установить - это отладчик WINDBG. Им можно управлять через интерфейс IDA. Это отличный отладчик. Может ему и не хватает комфорта, потому что почти все типы команд являются консольными и его немножко сложно использовать, но мы можем использовать отличный интерфейс, который предлагает IDA, отлаживая движком WINDBG. WINDBG очень полезен, когда мы хотим отлаживать ядро или получить хорошую информацию о состоянии кучи при переполнении кучи или об ошибках после освобождения памяти, которые мы увидим позже.

Существует множество способов установить WINDBG. К сожалению они меняются и Вам придется пробовать те, которые заработают на Вашем ПК. Поскольку я использую WINDOWS 10, я перехожу на страницу MICROSOFT, чтобы загрузить SDK для WINDOWS 10.

1.png

Здесь я скачал, и запустил установщик, и когда он мне показывает опции, я просто выбираю для установки DEBUGGING TOOLS FOR WINDOWS.

2.png

Отключив ненужные пункты, инсталлятор установит WINDBG. Поскольку каждая версия WINDOWS имеет свой собственный SDK, Вы можете сделать то же самое и в других версиях WINDOWS, и установить SDK, который соответствует Вашей системе. По крайней мере, в нашем случае, мы знаем, что у нас идёт всё хорошо.

Затем я должен перейти в папку CFG внутри установленной папки IDA и найти файл IDA.CFG.

3.png

Я редактирую этот файл, и я должен указать путь в переменную DBGTOOLS где установлен WINDBG x86. В моём случае он находится здесь.

4.png

Поэтому в файле IDA.CFG я ищу слово DBGTOOLS.

5.png

И я добавляю точный путь, добавляя двойной символ бэк-слэша \\ вместо одного, чтобы разделить папки. Я оставляю исходный путь, закомментированный выше.

6.png

Я открываю любой исполняемый файл, и устанавливаю BP для того, чтобы программа остановилась, и меняю отладчик на WINDBG.

7.png

Затем мы проверяем, всё ли в порядке. Мы запускаем исполняемый файл. Если IDA говорит нам, что она не находит WINDBG, мы должны проверить путь, или что-то не так установилось в процессе установки. Я думаю, что единственный способ увидеть проблему - это посмотреть с помощью утилиты PROCESS MONITOR какие файлы, установщик ищет при запуске и где, чтобы увидеть, чего ему не хватает.

8.png

Здесь отладчик остановится, поскольку он был WIN32 локальным отладчиком IDA, но мы видим, что ниже, где обычно находится панель PYTHON, появляется панель WINDBG (???). Если будет нужно, то нажав на слово WINDBG, я могу переключиться на панель PYTHON.

Это означает, что всё нормально. Он установился хорошо. Мы можем использовать GUI IDA и в то же время команды WINDBG. Давайте попробует некоторые из них.

9.png

10.png

Всё работает!!! Я могу увидеть список модулей в панели WINDBG. Очевидно в IDA будут те же данные.

11.png

Также мы должны сконфигурировать символы для WINDBG. Если мы введем такую команду:

.RELOAD

Отладчик покажет мне ошибки при работе с символами, потому что не настроено место, где нужно их хранить.

12.png

Мы создаём каталог на диске C:\ для символов. Очевидно IDA должна запускаться от пользователя Администратор. Если это не так, она не сможет писать в нужную папку.

В ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ WINDOWS мы добавим переменную _NT_SYMBOL_PATH.

13.png


14.png

А в значение, мы вводим следующее:

15.png

Здесь я буду вводить путь до папки, которая будет создана, когда начнут загружаться символы. В моём случае это будет папка с именем SYMBOLS на диске C:\

16.png

Я перезагрузил ПК или WINDOWS EXPLORER(процесс EXPLORER.EXE убивается и запускается из панели диспетчера задач).

И сейчас, когда я запускаю снова IDA и запускаю отладчик с помощью WINDBG, мы уже видим, что он пытается загрузить символы. Отладчик показывает окно загрузки и по окончанию с помощью команды LM, мы видим, что появляется путь, который мы установили и внутри папки символов находятся PDB файлы.

17.png

18.png

Мы уже сконфигурировали отладчик и он готов к работе.

19.png

С помощью клавиши X мы можем увидеть список функций библиотеки KERNEL32. Например, мы можем использовать подстановочные знаки.

20.png

Отладчик, покажет нам функции, которые начинаются с символов He.

Конечно, также в IDA, в списке модулей, я могу сделать правый щелчок и выбрать пункт LOAD SYMBOLS для любого модуля.

21.png

И также я буду иметь их в интерфейсе IDA.

У меня есть возможность установить BP из интерфейса IDA как мы обычно это делаем с помощью клавиши F2 и через панель WINDBG, которые будут обрабатываться IDA.

22.png

Если я введу команду BL, то увижу список BP WINDBG.

23.png

24.png

Мы видим, что в WINDBG выводятся все BP, тогда как в списке IDA будут появляться только BP IDA, но отладчик всегда будет останавливаться на всех.

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

===============================================================
Автор текста: Рикардо Нарваха - Ricardo Narvaja (@ricnar456)
Перевод на английский: IvinsonCLS (@IvinsonCLS)
Перевод на русский с испанского+английского: Яша_Добрый_Хакер(Ростовский фанат Нарвахи).
Перевод специально для форума системного и низкоуровневого программирования — WASM.IN
26.02.2018
Версия 1.0

3 747
yashechka

yashechka
Ростовский фанат Нарвахи
Команда форума

Регистрация:
2 янв 2012
Публикаций:
67

Комментарии


      1. yashechka 27 фев 2018
        :preved::preved::preved:
      2. yashechka 26 фев 2018
        Пойду переводить дальше. Следующую часть выложу после донатов :D