Отладка ядра Windows из Linux
-
12-12-2019 - |
Вопрос
Я использовал для отладки ядра Windows, используя virtualkd , windbg и одна виртуальная машина.
Недавно у меня есть машина Linux, и теперь мне интересно - какой самый простой способ отладки ядра Windows, когда ваш хост не может запустить virtualkd / windbg * ?
Я предполагаю, что решение потребует двух виртуальных машин, но я предпочел иметь два случая, размещенные на моей фактической машине, а не имели экземпляр, проживающий внутри другого виртуального экземпляра ...
Есть ли в любом случае, чтобы сделать эту работу?
Спасибо заранее!
* Вино - это последний курорт для соображений стабильности ...
Решение
Решено! По сути, я закончил использовать два (virtualbox) vms эмуляцию
Настройка оборудования *:
- .
- Ответчик:
- .
- Убедитесь, что машина выключена и редактируйте
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, а затем.
- Откройте окно командной строки в качестве администратора.
- Введите
bcdedit /debug on
- Если компьютер еще не настроен как цель отладочного транспорта, введите
bcdedit /dbgsettings local
- Перезагрузите компьютер.
После перезагрузки системы вы можете выполнить WinDBG
в качестве Administrator
, нажмите ctrl+k
или перейти к File -> Attach to kernel -> Local
и нажмите OK.
В тот момент вы сможете выполнить команды только на ядрах и доступа к структурам ядра:
Испытано под Windows 10 и с новой версией Windbg (предварительный просмотр).
Ссылка: Настройка локального Отладка ядра одного компьютера вручную