Débogage du noyau Windows à partir de Linux
-
12-12-2019 - |
Question
J'avais l'habitude de déboguer le noyau Windows en utilisant VirtualKD, WinDBG et une seule machine virtuelle.
Récemment, j'ai acheté une machine Linux et maintenant je me demande : quel est le moyen le plus simple de déboguer le noyau Windows lorsque votre hôte ne parvient pas à s'exécuter. VirtualKD/WinDBG*?
Je suppose que la solution nécessitera deux machines virtuelles, mais je préfère avoir deux instances hébergées sur ma machine réelle plutôt que d'avoir une instance résidant dans une autre instance virtuelle...
Y a-t-il un moyen pour que ça marche ?
Merci d'avance!
*Le vin est le dernier recours pour des raisons de stabilité...
La solution
résolu! Fondamentalement, j'ai fini par utiliser deux (VirtualBox) VMS émulant une connexion série (câble NULL-modem) sur une prise de domaine
Configuration matérielle *:
- Debuggee:
- Assurez-vous que la machine est désactivée et modifier des ports série Paramètres.
- Activer Port 1 et attribuer des valeurs comme suit: Numéro de port: COM1 , Mode Port: Tuyau hôte , Créer un tuyau:
Non coché (client), chemin de port / fichier: / tmp / win_link . .
- comme ci-dessus (en utilisant le même chemin), seule cette fois Créer un tuyau doit être coché (serveur).
Configuration du débogueur:
- Exécutez WINDBG et appuyez sur Ctrl + K pour appeler Débogage du noyau .
- dans com , Entrée: Baudrate: 115200, port: COM1, réinitialise: 0 et vérifiez que tuyau et reconnecte sont
non cochés (important> ). - Vous serez présenté avec la sortie suivante:
Opened \\\\.\com1 Waiting to reconnect...
Configuration de Debuggedie:
- Run
bootcfg / débogage sur / port COM1 / Baud 115200 / ID 1 . Pour vérifier, courez bootcfg . ** - Redémarrez.
- assez tôt pendant la phase de démarrage, Windbg sur l'autre machine doit détecter le débuteur est en cours d'exécution.
* Assumant VirtualBox est utilisé. Les utilisateurs de VMware / KVM pourront probablement obtenir les mêmes résultats en suivant des étapes similaires. En outre, pour plus d'informations, reportez-vous à la Virtualbox Docs .
** supposant que les invités soient Windows XP. Les versions ultérieures incluent BCDEDIT, qui peut être utilisée comme décrit ici .
Autres conseils
pour QEMU \ KVM Suivez ces instructions: http://www.linux-kvm.org/page/windowsGuestdrivers/guestDebugging
Très serviable mais s'applique aux machines Windows XP.Vous pouvez vous reporter au lien suivant si vous devez configurer 2 machines virtuelles basées sur Windows7 sur un hôte Linux: http://www.aldeid.com/wiki/catedeid.com/wiki/catedeid.com/wiki/forensics/computer-forensics/debugger/kernel
De nos jours, une autre option consiste à activer le débogage local du noyau.Cela vient avec quelques limites, cependant, cela vous permettra d'accéder aux données du noyau en utilisant simplement un Machine virtuelle.
Cette approche ne fonctionne que sur Windows 8.0 et Windows Server 2012 et versions ultérieures.
Suivez ces étapes:
- Ouvrez une fenêtre d'invite de commande en tant qu'administrateur.
- Entrer
bcdedit /debug on
- Si l'ordinateur n'est pas déjà configuré comme cible d'un transport de débogage, entrez
bcdedit /dbgsettings local
- Redémarrez l'ordinateur.
Une fois le système redémarré, vous pouvez exécuter WinDBG
comme Administrator
, presse ctrl+k
ou allez à File -> Attach to kernel -> Local
et appuyez sur OK.
À ce stade, vous pourrez exécuter des commandes réservées au noyau et accéder aux structures du noyau :
Testé sous Windows 10 et avec la nouvelle version WinDBG (preview).
Référence: Configuration manuelle du débogage du noyau local d'un seul ordinateur