+ Reply to Thread
Results 1 to 3 of 3

Thread: Linux+VMware+WinDbg: Отладка одной виртуальной машины из другой виртуальной машины

  1. #1
    Prosper-H's Avatar

    Default Linux+VMware+WinDbg: Отладка одной виртуальной машины из другой виртуальной машины

    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, за исключением двух деталей.
    1. Когда дойдете до (Рис. 4), то в поле «From» вместо «Server» выберите «Client» (Рис. 6).
    2. Для Host XP, в настройках «Serial Port» не устанавливайте флажок «Yield CPU on poll».

    Рис. 6. Настройки сокета для Host XP


    3. Настройка внутренней среды виртуальных машин

    Теперь, когда образы готовы, приступим к их внутренней настройке.


    3.1 Guest XP
    1. Запустите Guest XP.
    2. Добавьте дополнительную опцию загрузки в файл boot.ini. Например, у меня он выглядит так:
      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
      Где: «/sos» - отвечает за отображение загружаемых драйверов, во время загрузки ОС; «/bootlog» - активизирует протоколирование загрузки ОС в файл «%SYSTEMROOT%\NTBTLOG.txt»; «/debug» - переводит ОС в отладочный режим; «/debugport» - устанавливает COM-порт, через который будет вестись отладка, у меня он равен «COM2», у вас он может быть «COM1» (смотрите на префикс «Serial Port», Рис. 5), «/baudrate» - устанавливает скорость передачи информации, в нашем случае устанавливается максимая скорость, для COM-порта, в 115200 бит/с.

    3. Выключите Guest XP.

    3.2 Host XP
    1. Запустите Host XP.
    2. Установите WinDbg.
    3. В ярлыке, запуска 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) требуемых для отладки.
    На этом настройка Host XP - закончена. Приступаем к тестированию нашей среды.


    4. Тестирование отладочной среды

    Тут все предельно просто:
    1. На Host XP запустите WinDbg (через настроенный нами ярлык).
    2. Далее запустите Guest XP.
    3. Ожидайте.
    4. Если все следано правильно, то в окне WinDbg должна отобразиться примерно следующая информация (Рис. 8):

    Рис. 8. Окно WinDbg

    На этом наша настройка закончена.

    Успехов!
    © Prosper-H (r0 Crew)
    Last edited by Prosper-H; 29-01-2013 at 08:27.
    Дорогу осилит идущий. (К. Касперски)

    Двери есть везде. Просто нужно знать, как в них войти. ("Хроники Амбера", персонаж: Корвин)

  2. 4 пользователя(ей) сказали cпасибо:
    azizjon (23-03-2016) coldfire (29-01-2013) kari (11-02-2013) ximera (29-01-2013)
  3. #2
    ximera's Avatar

    Default Re: Linux+VMware+WinDbg: Отладка одной виртуальной машины из другой виртуальной машины

    Для QEMU KVM еще надо попробовать сделать
    Чтобы избегать ошибок, надо набираться опыта; чтобы набираться опыта, надо делать ошибки. © Лоренс Питер

    Неизбежное прими достойно. © Сенека Луций Анней

    Господи... храни сумасшедших. © Сумасшедший Фрэнки

  4. #3

    Default Re: Linux+VMware+WinDbg: Отладка одной виртуальной машины из другой виртуальной машины

    very informative thread
    keep the good work and thank you for this

  5. Пользователь сказал cпасибо:
    ximera (03-04-2013)
+ Reply to Thread

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
All times are GMT. The time now is 01:34
vBulletin® Copyright ©2000 - 2018
www.reverse4you.org