Debuggen des Windows-Kernels von Linux
-
12-12-2019 - |
Frage
Ich habe den Windows-Kernel mit debuggt Virtueller CD, Windräder und eine einzige virtuelle Maschine.
Vor kurzem habe ich einen Linux-Rechner bekommen, und jetzt frage ich mich - Was ist der einfachste Weg, den Windows-Kernel zu debuggen, wenn Ihr Host nicht ausgeführt werden kann Virtuelles CD/WinDbg*?
Ich gehe davon aus, dass für die Lösung zwei virtuelle Maschinen erforderlich sind, aber ich habe lieber zwei Instanzen auf meinem tatsächlichen Computer gehostet, als dass sich eine Instanz in einer anderen virtuellen Instanz befindet...
Gibt es überhaupt etwas, damit das funktioniert?
Danke im Voraus!
* Wein ist aus Stabilitätsgründen der letzte Ausweg...
Lösung
Gelöst! Grundsätzlich endete ich mit
Hardware-Setup *:
- debuggee:
- Stellen Sie sicher, dass das Gerät deaktiviert ist, und bearbeiten Sie
seriellen Ports Einstellungen.
- Stellen Sie sicher, dass das Gerät deaktiviert ist, und bearbeiten Sie
- Aktivieren Sie
Port 1 und weisen Sie wie folgt Werte an: Portnummer: com1 , Port-Modus:
- gleich wie oben (mit demselben Pfad), nur diese Zeit, die Rohre erstellt, sollte geprüft (server).
Debugger-Setup:
- run windbg und drücken Sie Strg + K, um Kernel-Debugging aufzurufen.
- in com , eingeben: Baudrate: 115200, Anschluss: COM1, Setzt: 0 und überprüfen, ob
Rohres und wiederverschließennicht markiert sind (wichtig ). - Sie werden mit der folgenden Ausgabe dargestellt:
Opened \\\\.\com1 Waiting to reconnect...
debuggee Setup:
- run bootcfg / debug on / port com1 / baud 115200 / id 1 . Um zu überprüfen, führen Sie bootcfg aus. **
- Neustart.
- Sehr früh während der Bootenstufe sollte Windbg auf der anderen Maschine das Debuggee erkennen.
* Angenommen, die VirtualBox wird verwendet. VMware / KVM-Benutzer werden wahrscheinlich in der Lage sein, dieselben Ergebnisse zu erzielen, die folgenden Schritte folgen. Weitere Informationen finden Sie auf der virtualbox docs .
** Angenommen, die Gäste sind Windows XP. Spätere Versionen umfassen BCDEDIT, die wie beschrieben verwendet werden können hier .
Andere Tipps
für qemu \ kVM folgen Sie der Anleitung: http://www.linux-kvm.org/page/windowsguestdrivers/guestdebugging
sehr hilfreich, gilt aber für Windows XP-Maschinen.Sie können sich auf den folgenden Link beziehen, wenn Sie 2 Windows7-basierte virtuelle Maschinen auf einem Linux-Host konfigurieren müssen: http://www.aldeid.com/wiki/category:igital-Fleissik/Computer-Förersiks/debugger/kernel
Eine andere Möglichkeit besteht heutzutage darin, das lokale Kernel-Debugging zu aktivieren.Dies kommt mit einigen nkungen, jedoch wird es Ihnen ermöglichen, auf Kerneldaten zuzugreifen, während Sie nur verwenden ein VM.
Dieser Ansatz funktioniert nur unter Windows 8.0 und Windows Server 2012 und höher.
Folgendermaßen:
- Öffnen Sie ein Eingabeaufforderungsfenster als Administrator.
- Geben
bcdedit /debug on
- Wenn der Computer noch nicht als Ziel eines Debug-Transports konfiguriert ist, geben Sie Folgendes ein
bcdedit /dbgsettings local
- Starten Sie den Computer neu.
Sobald das System neu gestartet wurde, können Sie Folgendes ausführen WinDBG
als Administrator
, drücken ctrl+k
oder gehen Sie zu File -> Attach to kernel -> Local
und drücken Sie OK.
An diesem Punkt können Sie Nur-Kernel-Befehle ausführen und auf Kernel-Strukturen zugreifen:
Getestet unter Windows 10 und mit der neuen WinDbg-Version (Vorschau).
Referenz: Manuelles Einrichten des lokalen Kernel-Debuggens eines einzelnen Computers