Intro
На момент написания этой заметки мы производим перевод курса, посвященного реверсу руткита Max++. Для успешного прохождения данного курса, требуется как минимум одна хостовая система с ОС Windows XP, одна виртуальная машина, также c OC Windows XP и отладчик WinDbg.
Учитывая тот факт, что многие из наших посетителей сейчас либо сидят, либо задумываются о миграции на Linux, не может не возникать вопрос:
Можно ли отлаживать при помощи одной виртуальной машины Windows, другую виртуальную машину Windows?
Этот же вопрос, в свое время задавал себе и я. И ответом на него будет твердое «ДА». Отлаживать одну виртуальную машину, использую для этого другую - можно! Как это сделать я опишу ниже. Так как в качестве виртуальной среды я всегда использую продукты VMware, то и рецепт будет для виртуальных машин VMware.
1. Подготовка
Итак, начнем. Для нашей демонстрации, нам понадобится:Если все это есть, переходим к настройке.
- VMware
- Виртуальная машина Windows XP #1 (далее именуемая Host XP)
- Виртуальная машина Windows XP #2 (далее именуемая Guest XP)
2. Настройка образов
Вначале подготовим образы (конфиги) виртуальных машин. Нам нужно связать между собой виртуальные машины при помощи «именованного канала» (pipe), в Linux версии VMware это именуется «сокетом» (socket).
2.1. Настройка Guest XP
Зайдите в настройки виртуальной машины Guest XP (Рис. 1).
![]()
Рис. 1. Окно настроек виртуальной машины
Нажмите «Add». В появившемся окне (Рис. 2) выберите «Serial Port».
Рис. 2. Окно выбора типа добавляемого устройства
Затем в следующем окне (Рис. 3) выберите «Output to socket».
![]()
Рис. 3. Выбор типа интерфейса
Далее в следующем окне (Рис. 4) установите:
- Socket: /tmp/windbg
- From: Server
- To: A Virtual Machine
![]()
Рис. 4. Настройки сокета для Guest XP
После того, как нажмете «Finish», в окне настроек (Рис. 5) виртуальной машины появится добавленный «Serial Port». У меня это «Serial Port 2». В свое время, он мне доставил одну проблему... Я по привычке юзал COM1, вместо требуемого в моем случае COM2. Так что будьте внимательней ;)
![]()
Рис. 5. Окно настроек виртуальной машины
Последнее, что нам нужно тут сделать - это установить флажок «Yield CPU on poll».
2.2. Настройка Host XP
Настройка Host XP практически идентична настройке Guest XP, за исключением двух деталей.
- Когда дойдете до (Рис. 4), то в поле «From» вместо «Server» выберите «Client» (Рис. 6).
- Для Host XP, в настройках «Serial Port» не устанавливайте флажок «Yield CPU on poll».
Рис. 6. Настройки сокета для Host XP
3. Настройка внутренней среды виртуальных машин
Теперь, когда образы готовы, приступим к их внутренней настройке.
3.1 Guest XP
- Запустите Guest XP.
- Добавьте дополнительную опцию загрузки в файл boot.ini. Например, у меня он выглядит так:
Где: «/sos» - отвечает за отображение загружаемых драйверов, во время загрузки ОС; «/bootlog» - активизирует протоколирование загрузки ОС в файл «%SYSTEMROOT%\NTBTLOG.txt»; «/debug» - переводит ОС в отладочный режим; «/debugport» - устанавливает COM-порт, через который будет вестись отладка, у меня он равен «COM2», у вас он может быть «COM1» (смотрите на префикс «Serial Port», Рис. 5), «/baudrate» - устанавливает скорость передачи информации, в нашем случае устанавливается максимая скорость, для COM-порта, в 115200 бит/с.Code:[boot loader] timeout=5 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional - DEBUGGED" /noexecute=optin /fastdetect /sos /bootlog /debug /debugport=com2 /baudrate=115200 multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
- Выключите Guest XP.
3.2 Host XPНа этом настройка Host XP - закончена. Приступаем к тестированию нашей среды.
- Запустите Host XP.
- Установите WinDbg.
- В ярлыке, запуска WinDbg (Рис. 7), в поле «Target», пропишите следующие настройки:
Code:C:\PATH\windbg.exe -b -k com:port=com2,baud=115200 -y SRV*C:\Symbols\SP3*http://msdl.microsoft.com/download/symbols![]()
Рис. 7. Настройки ярлыка WinDbg
Где: «C:\PATH\windbg.exe» - путь к WinDbg; «-b» - отвечает за остановку отлаживаемой ОС при подключении отладчика; «-k com:port=com2,baud=115200» - устанавливает настройки COM-порта и скорость передачи информации (обратите особое внимание на эту строчку, в ней мы устанавливаем COM-порт, а не pipe); «SRV*C:\Symbols\SP3*http://msdl.microsoft.com/download/symbols» - устанавливает путь к «Символам» (Symbols) требуемых для отладки.
4. Тестирование отладочной среды
Тут все предельно просто:
- На Host XP запустите WinDbg (через настроенный нами ярлык).
- Далее запустите Guest XP.
- Ожидайте.
- Если все следано правильно, то в окне WinDbg должна отобразиться примерно следующая информация (Рис. 8):
![]()
Рис. 8. Окно WinDbg
На этом наша настройка закончена.
Успехов!
© Prosper-H (r0 Crew)



Reply With Quote
Thanks
