Вопрос

Я использовал для отладки ядра Windows, используя virtualkd , windbg и одна виртуальная машина.

Недавно у меня есть машина Linux, и теперь мне интересно - какой самый простой способ отладки ядра Windows, когда ваш хост не может запустить virtualkd / windbg * ?

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

Есть ли в любом случае, чтобы сделать эту работу?

Спасибо заранее!

* Вино - это последний курорт для соображений стабильности ...

Это было полезно?

Решение

Решено! По сути, я закончил использовать два (virtualbox) vms эмуляцию последовательного соединения (кабель null-модем) над "сильным> сокетом домена Unix (на хосте). Для получения дополнительной информации, прочитайте ниже:

Настройка оборудования *:

    .
  • Ответчик:
      .
    • Убедитесь, что машина выключена и редактируйте Serial Ports Настройки.
    • включить port 1 и назначьте значения следующим образом: номер порта: com1 , режим порта: host труба , создать трубку: <сильный > Не снял (клиент), пункт порта / файла: / tmp / win_link .
  • Отладчик:
      .
    • То же, что и выше (используя тот же путь), только на этот раз создавать трубу должен быть Checked (сервер).

Настройка отладчика:

    .
  • запустить windbg и нажмите Ctrl + K, чтобы вызвать Отладка ядра .
  • в com , введите: baidrate: 115200, порт: com1, сбрасывает: 0 и убедитесь, что труба и переподнесет без изменений (важно ).
  • Вы будете представлены следующим выходом: Opened \\\\.\com1 Waiting to reconnect...

Настройка отладчика:

    .
  • запустить bootcfg / debug on / port com1 / baud 115200 / id 1 . Для проверки, запустите bootcfg . **
  • перезагрузка.
  • Довольно рано во время сцены загрузки, WINGBG на другой машине должен обнаружить работу от отладки.

* При условии, что используется VirtualBox. Пользователи VMware / KVM, вероятно, смогут достичь одинаковых результатов после аналогичных шагов. Кроме того, для получения дополнительной информации обратитесь к virtualbox docs .

** Предполагая, что гости - это Windows XP. Позже версии включают BecDedit, который можно использовать, как описано здесь .

Другие советы

Для Qemu \ KVM Следуйте те инструкции: http://www.linux-kvm.org/page/windowsguestdrivers/guestdebugging

Очень полезно, но применяется к машинам Windows XP.Вы можете обратиться к следующей ссылке, если вам нужно настроить 2 виртуальных машины на основе Windows7 на хосте Linux: http://www.aldeid.com/wiki/category:digital-forensics/computer-forensics/debugger/kernel

Другой вариант в настоящее время - включить локальную отладку ядра. Это поставляется с некоторыми Ограничения Однако он позволит вам получить доступ к данным ядра, просто используя один vm.

Этот подход работает только на Windows 8.0 и Windows Server 2012, а затем.

Выполните следующие действия:

  1. Откройте окно командной строки в качестве администратора.
  2. Введите bcdedit /debug on
  3. Если компьютер еще не настроен как цель отладочного транспорта, введите bcdedit /dbgsettings local
  4. Перезагрузите компьютер.
  5. После перезагрузки системы вы можете выполнить WinDBG в качестве Administrator, нажмите ctrl+k или перейти к File -> Attach to kernel -> Local и нажмите OK.

     Прикрепите к ядру опции

    В тот момент вы сможете выполнить команды только на ядрах и доступа к структурам ядра:

     Введите описание изображения здесь

    Испытано под Windows 10 и с новой версией Windbg (предварительный просмотр).

    Ссылка: Настройка локального Отладка ядра одного компьютера вручную

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top