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

Était-ce utile?

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 Unix (sur l'hôte). Pour plus d'informations, lisez ci-dessous:

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 .
    • .
  • débogueur:
    • 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

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:

  1. Ouvrez une fenêtre d'invite de commande en tant qu'administrateur.
  2. Entrer bcdedit /debug on
  3. Si l'ordinateur n'est pas déjà configuré comme cible d'un transport de débogage, entrez bcdedit /dbgsettings local
  4. 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.

Attach to Kernel Option

À ce stade, vous pourrez exécuter des commandes réservées au noyau et accéder aux structures du noyau :

enter image description here

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top