Debug di Windows Kernel da Linux
-
12-12-2019 - |
Domanda
L'ho usato per eseguire il debug del kernel di Windows utilizzando VirtualKD , Windbg e una singola macchina virtuale.
Recentemente ho ricevuto una macchina Linux, e ora mi chiedo- Qual è il modo più semplice per eseguire il debug del kernel di Windows quando il tuo host non è in grado di eseguire VirtualKD / Windbg * ?
Suppongo che la soluzione richiederà due macchine virtuali, ma preferisco avere due casi ospitati sulla mia macchina reale piuttosto che avere un'istanza che risiede all'interno di un'altra istanza virtuale ...
C'è comunque per rendere quel lavoro?
Grazie in anticipo!
* Il vino è l'ultima risorsa per motivi di stabilità ...
Soluzione
risolto! Fondamentalmente, ho finito per usare Due (VirtualBox) VMS Emulating A Connessione seriale (cavo NULL-modem) su una presa di dominio UNIX (sull'host). Per maggiori informazioni, leggi qui sotto:
Impostazione hardware *:
- .
- debuggee:
- .
- Assicurarsi che la macchina sia disattivata e modifica Porte seriali Impostazioni.
- Abilita Porta 1 e Assegna valori come segue: Numero di porta: COM1 , Modalità porta: Tubo host , Crea pipe: Unchecked (client), percorso porto / file: / tmp / win_link .
- .
- Come sopra (usando lo stesso percorso), solo questa volta creare il tubo dovrebbe essere selezionato (server).
Setup di debugger:
- .
- Esegui Windbg e premi Ctrl + K per invocare Debug del kernel .
- in com , immettere: Baudrate: 115200, porta: com1, reimposta: 0 e verificare che tubo e riconnettersi sono deselezionati (IMPORTANTE ).
- Sarai presentato con la seguente output:
Opened \\\\.\com1 Waiting to reconnect...
Setup Deboree:
- .
- Esegui BootCFG / Debug on / Port Com1 / Baud 115200 / ID 1 . Per verificare, eseguire bootcfg . **
- Riavvia.
- Abbastanza presto durante lo stadio di avvio, Windbg sull'altra macchina dovrebbe rilevare che Debuggee è in esecuzione.
* Assumendo VirtualBox è usato. Gli utenti VMware / KVM saranno probabilmente in grado di ottenere gli stessi risultati a seguito di passaggi simili. Inoltre, per ulteriori informazioni, fare riferimento a VirtualBox Docs .
** Assumendo gli ospiti sono Windows XP. Le versioni successive includono BCDedIT, che può essere utilizzata come descritto qui .
Altri suggerimenti
per qemu \ kvm Segui le istruzioni: http://www.linux-kvm.org/page/windowsuestdrivers/guestdebugning
Molto utile ma si applica alle macchine Windows XP.È possibile fare riferimento al seguente link se è necessario configurare 2 macchine virtuali basate su Windows7 su un host Linux: http://www.aldeid.com/wiki/category:Digital-Fordensics/computer-Fordensics/debugger/kernel
Un'altra opzione al giorno d'oggi è abilitare il debug locale del kernel. Questo viene fornito con alcuni Limitazioni , tuttavia ti consentirà di accedere ai dati del kernel durante l'utilizzo di One VM.
Questo approccio funziona solo su Windows 8.0 e Windows Server 2012 e successivamente.
Attenersi alla seguente procedura:
- .
- Apri una finestra del prompt dei comandi come amministratore.
- Inserisci
bcdedit /debug on
- Se il computer non è già configurato come obiettivo di un trasporto di debug, immettere
bcdedit /dbgsettings local
- Riavvia il computer.
Una volta riavviato il sistema, è possibile eseguire WinDBG
come Administrator
, premere ctrl+k
o andare su File -> Attach to kernel -> Local
e premere OK.
A quel punto, sarai in grado di eseguire comandi solo del kernel e accedere a Kernel Structures:
Testato sotto Windows 10 e con la nuova versione Windbg (anteprima).
Riferimento: Impostazione locale Debug del kernel di un singolo computer manualmente