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

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

Чтобы начать наши эксперименты, необходимо установить саму виртуальную среду. Кто-то предпочитает 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
Настройка Visual Studio Remote Tools

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

Готовый к работе удаленный отладчик Microsoft
Готовый к работе удаленный отладчик Microsoft

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

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

Настройка Visual Studio Remote Tools
Настройка Visual Studio Remote Tools

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

 

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

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

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

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

Сервер IDA на целевой машине
Сервер IDA на целевой машине

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

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

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

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

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

Вариант 2. Купи один материал

Заинтересовала информация, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для материалов, опубликованных более двух месяцев назад.


3 комментария

  1. devbutch

    22.05.2018 at 23:01

    Помимо отладки малвари, удалённая отладка также используется при разработке драйверов под Windows.

  2. Satabol

    04.06.2018 at 09:08

    Некоторое дополнение по поводу удалённой отладки в Visual Studio.
    1. Важно помнить, что программу надо собирать с символами отладки (файл .pdb).
    2. Есть разница между режимами работы (2.1) с удалённым запуском и отладкой и (2.2) просто подключением к удалённой отладке.
    Поэтому для:
    2.1. Необходимо разместить запускаемую программу в точно таком же каталоге на целевой машине (я делаю это с помощью net use на свой локальный диск). Это позволяет не мучится с переносом файлов на целевую машину в режиме разработки, когда надо потестить в другой среде.
    2.2. Для подключения к удалённой отладке необходимо разместить символы отладки .pdb в каталоге с программой, а вот требования к каталогу программы уже не такие строгие как в п 2.1. Программу в этом случае можно разместить в любом месте. Только запускать её приходится самостоятельно. В этом основное отличие от п.2.1., когда программу должна запустить VS на удалённом компьютере (в этом, наверное, и состоит главное требование к пути исполняемого файла).
    Поэтому п.2.2 можно/удобно использовать для отладки в корпоративной среде по жалобам пользователей.

    P.S.
    Небольшое дополнение. Можно также удалённо отлаживать и dll, например, при разработке под Autocad (objectarx).
    P.P.S.
    Самое приятное в инструменте удалённой отладки, что он (насколько я уже имел возможность убедиться) является portable — я много раз просто копировал его на целевую машину и запускал там без проблем.

  3. northon

    10.06.2018 at 21:37

    что за бедный опрос? и как мне ответить на несколько вариантов?

Оставить мнение

Check Also

Snek Fite. Как я сделал онлайновую игру для программистов

Ты, конечно, знаешь такую замечательную игру, как «Змейка». Так вот речь пойдет вовсе не о…