EnglishFrenchGermanItalianPortugueseSpanish

IDA vs Windbg

Относительно недавно вышла новая IDA v5.4. В ней были заявлены возможности удаленной отладки, используя Windbg. Конечно, в IDA появились и другие интересные вещи. Среди них я бы выделил те самые три отладчика: Bosch, GDB, Windbg; возможность писать на Python (видимо для гиков и «аверов», которые строят на этом системы анализа); и, задерживаем дыхание, возможность получить  имена локальных переменных и типы из формата .PDB. Последнее означает то, что теперь можно загрузить наконец-то ntoskrnl.exe в IDA и все недокументированные структуры будут как на ладони (это ж надо дойти до этого только к версии 5.4).

Картинка ниже показывает недокументированную структуру _KTHREAD файла ядра.

Недокументрированные структуры

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

Первым делом, я взялся смотреть отладчик, так как он мне интереснее всего. Скачиваем по ссылке статью, в которой описываются настройки IDA для удаленной отладки с помощью Windbg. Прежде всего, я советую обратить внимание на следующие моменты:

  • Конфигурация источника символов. Не забываем прописать путь в переменные окружения или перед запуском IDA выполняем команду set.
  • Выбираем Debugger->Attach, а не Debugger->Run.
  • Не забываем поставить галочку Kernel mode debugging.

Подключение к ядру

Сразу после подключения мы получаем полноценный отладчик, который умеет выполнять команды Windbg в отдельном окошке. Нам доступны все расширения (смотри .chain и .load). Не забывайте нажимать C для преобразования в код. В отладчике также работает Hex-Rays (для этого надо создать функцию, нажмите P, а потом F5).

Главное окно отладчика

Пожалуй, я задумаюсь о полноценном переходе на отладчик IDA, использующий Windbg. Графический интерфейс однозначно удобнее, а если меня застигнет ностальгия, то всегда под рукой строка для ввода команд Windbg.

Читайте также:

Share

14 comments to IDA vs Windbg

  • coban

    блин( ида это классно но у нас на фирме покупать ее вряд ли будут(
    завидует черной завистью тем у кого она есть

  • n0name

    Hex-Rays нафиг не нужен имхо, токо вредит ;)
    Дебажить мне и в обычной WinDbg удобно.
    Правда приходится иногда на иду переключаться.

    • SWW

      Ну, тут каждому свое. Я активно пользуюсь (с оглядкой в дизасм) Hex-Rays и меня многое устраивает. Ты попробуй подебажь в IDA, Windbg так уныл, что сил нет. Прокрутки кода в дизасме — это ваще жесть, кто это вообще придумал. Windbg крут тем, что имеет огромное кол-во команд, но они поддерживаются теперь и в ИДЕ ;)

      • n0name

        Hex-Rays много лишнего создает, кучи не нужных переменнных, непонятные ветвления. В дизасме все четко и ясно ;)
        В IDA я иногда дебажу r3 приложения, по сравнению с olly — убого )
        Единственное что не хватает в других продуктах по сравнению с идой, это xref’ы и имена функций/переменных, комментов которые сделал в IDA.

  • coban

    нам её не купят от того что есть WinDbg, который бесплатный….

  • coban

    наш профиль прикладное программирование, исследовать приходится по ходу дела если не хватает документации((

  • Ск4ыр

    А ещё новой идой можно qemu-шный биос дебажить прямо на живой вм-ке)

  • eyegabooom64

    боян какойто…
    http://hexblog.com/2009/01/kernel_debugging_with_ida.html

    у ильfuck’а в блоге еще и видео есть.

  • coban

    я чегото не пойму, а если я куплю себе иду за 700 баксов — hexrays будет в поставке?? или его отдельно придется покупать за 2300 ????

Leave a Reply

  

  

  

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">