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...

War es hilfreich?

Lösung

Gelöst! Grundsätzlich endete ich mit zwei (virtualbox) vms eine serielle Verbindung (Null-Modemkabel) über eine UNIX-Domäne-Buchse (auf dem Host). Für weitere Informationen lesen Sie unten:

Hardware-Setup *:

  • debuggee:
    • Stellen Sie sicher, dass das Gerät deaktiviert ist, und bearbeiten Sie seriellen Ports Einstellungen.
    • Aktivieren Sie Port 1 und weisen Sie wie folgt Werte an: Portnummer: com1 , Port-Modus: Hostrohr , Pipe erstellen: Deaktiviert (Client), Port / Dateipfad: / tmp / win_link .
  • Debugger:
    • 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ßen nicht 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

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:

  1. Öffnen Sie ein Eingabeaufforderungsfenster als Administrator.
  2. Geben bcdedit /debug on
  3. Wenn der Computer noch nicht als Ziel eines Debug-Transports konfiguriert ist, geben Sie Folgendes ein bcdedit /dbgsettings local
  4. 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.

Attach to Kernel Option

An diesem Punkt können Sie Nur-Kernel-Befehle ausführen und auf Kernel-Strukturen zugreifen:

enter image description here

Getestet unter Windows 10 und mit der neuen WinDbg-Version (Vorschau).

Referenz: Manuelles Einrichten des lokalen Kernel-Debuggens eines einzelnen Computers

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top