Следующая новость
Предыдущая новость

Искусство удаленной отладки. Готовим инструментарий для работы с ядром и вирусами

26.04.2018 12:55
Искусство удаленной отладки. Готовим инструментарий для работы с ядром и вирусами

Содержание статьи

  • Установка и настройка виртуальной машины
  • Удаленная отладка в Microsoft Visual Studio
  • Удаленная отладка с IDA Starter
  • Настройка WinDbg/VirtualKD
  • Анализ аварийного дампа при помощи WinDbg
  • Где искать дампы
  • Заключение

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

Установка и настройка виртуальной машины

Чтобы начать наши эксперименты, необходимо установить саму виртуальную среду. Кто-то предпочитает VirtualBox, но мы будем использовать VMware Workstation, потому что VirtualBox с некоторыми инструментами удаленной отладки дружит несколько хуже и требует дополнительной настройки. С VMware таких проблем нет. В качестве целевой операционной системы мы будем использовать Windows 10 x64 LTSB. Настоятельно рекомендуется сразу же создать общую папку для удобной переброски файлов с хостовой ОС на гостевую. Также следует выбрать тип микропрограммы BIOS, а не UEFI. Это делается для совместимости с некоторыми отладочными компонентами, которые мы будем использовать.

Настройка виртуальной машины

Искусство удаленной отладки. Готовим инструментарий для работы с ядром и вирусами

INFO

Во время отладки на компьютере зачастую запущено несколько требовательных к объему оперативной памяти приложений: сама виртуальная машина, компилятор, браузер. Для комфортной работы понадобится как минимум 8 Гбайт.

Насколько безопасно выполнять вирусную аналитику в виртуальной машине?

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

Искусство удаленной отладки. Готовим инструментарий для работы с ядром и вирусами Загрузка ...

Удаленная отладка в Microsoft Visual Studio

Популярная IDE Microsoft Visual Studio также поддерживает средства удаленной отладки. Чтобы ими воспользоваться, тоже понадобится виртуальная машина, с сервером отладки Visual Studio Remote Tools. Обрати внимание: он должен подходить к той версии Visual Studio, из которой ты хочешь подключаться.

Также я рекомендую отключить аутентификацию на сервере отладки, чтобы всякий раз не вводить учетные данные пользователя. Для этого зайди в «Сервис → Параметры», выбери режим «Без аутентификации» и включи чекбокс «Разрешить отладку любому пользователю».

Искусство удаленной отладки. Готовим инструментарий для работы с ядром и вирусами
Настройка Visual Studio Remote Tools

Сервер запущен, настроен и слушает порт 4022 на предмет подключения отладчика.

Искусство удаленной отладки. Готовим инструментарий для работы с ядром и вирусами
Готовый к работе удаленный отладчик Microsoft

Теперь переходим в Visual Studio для настройки проекта под удаленную отладку. Для начала нам нужно открыть свойства проекта и перейти на вкладку «Отладка». В строке «Удаленная команда» нужно задать путь до отлаживаемого файла, в пунктах «Рабочий каталог» и «Каталог развертывания» указать каталог с отлаживаемым файлом. Также необходимо задать имя удаленного сервера (его можно взять в окне сервера отладки в виртуальной машине) и выбрать тип подключения «Без аутентификации». Теперь заходим в «Диспетчер конфигураций» и ставим чекбокс в столбце «Развертывание» напротив нашего проекта.

Теперь все готово к удаленной отладке, которую можно начать, выбрав в меню «Отладка» пункт «Начать отладку» либо нажав F5. Visual Studio, кстати, позволяет подсоединяться к удаленному процессу в виртуальной машине. Для этого нужно выбрать в меню «Отладка» «Присоединиться к процессу» и в появившемся окне — удаленный сервер и процесс.

Искусство удаленной отладки. Готовим инструментарий для работы с ядром и вирусами
Настройка Visual Studio Remote Tools

Ура! Visual Studio полностью готова к удаленной отладке.

Удаленная отладка с IDA Starter

С некоторого времени популярный и весьма мощный дизассемблер IDA Pro стал распространяться бесплатно для частного использования. Разумеется, речь идет о его урезанной версии — IDA Starter. Основная функция этого инструмента — статический анализ, но, помимо этого, он умеет удаленно отлаживать приложения. Сейчас мы разберемся, как его настроить для удаленной отладки.

Итак, в корневой папке IDA ты найдешь каталог dbgsrv, внутри которого есть несколько серверов под разные ОС и архитектуры процессора. Если ты собираешься отлаживать 64-разрядные приложения, то на гостевой ОС необходимо запустить файл win64_remote64.exe, предварительно скопировав его в виртуальную машину. После запуска он сообщит нам IP отладочного сервера и порт, через который происходит отладка. Если необходимо запустить этот сервер с возможностью авторизации, просто добавь параметр -P и пароль при запуске сервера отладки.

Теперь переходим на основную машину, чтобы настроить удаленную отладку в самой IDA.

Искусство удаленной отладки. Готовим инструментарий для работы с ядром и вирусами
Сервер IDA на целевой машине

Для настройки отладчика в IDA открывай меню Debugger → Select debugger или жми F9. Теперь в списке доступных отладчиков выбирай Remote Windows Debugger. Появится окно, предупреждающее о рисках дебага, отвечай утвердительно, если понимаешь их. ????

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

Продолжение доступно только подписчикам

Материалы из последних выпусков можно покупать отдельно только через два месяца после публикации. Чтобы продолжить чтение, необходимо купить подписку.

Подпишись на «Хакер» по выгодной цене!

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

1 год

3990 р.

Экономия 1400 рублей!

1 месяц

720 р.

25-30 статей в месяц

Уже подписан?

Источник

Последние новости