Pregunta

He utilizado para depurar el Kernel de Windows utilizando VirtualKD, WinDBG y en una única Máquina Virtual.

Recientemente recibí una máquina Linux, y ahora me pregunto - ¿Cuál es la manera más fácil de depurar el Kernel de Windows cuando el host no se puede ejecutar VirtualKD/WinDBG*?

Supongo que la solución requerirá de dos Máquinas Virtuales, pero prefiero tener dos instancias alojado en mi máquina real en lugar de tener una instancia que residen dentro de otra instancia virtual...

Existe de todos modos para hacer ese trabajo?

Gracias de antemano!

*El vino es el último recurso por razones de estabilidad...

¿Fue útil?

Solución

resuelto! Básicamente, terminé usando dos (virtualbox) vms emulando una conexión en serie (cable nulo-módem) sobre un zócalo de dominio Unix (en el host). Para obtener más información, lea a continuación:

Configuración de hardware *:

  • debugeño:
    • Asegúrese de que la máquina esté apagada y edite Puertos en serie Configuración.
    • Habilitar puerto 1 , y asignar valores de la siguiente manera: Número de puerto: com1 , modo de puerto: tubería host , cree tubería: Sin marcar (cliente), ruta del puerto / archivo: / tmp / win_link .
  • depurador:
    • Igual que el anterior (usando la misma ruta), solo esta vez cree tubería debe ser revisada (servidor).

Configuración del depurador:

  • Ejecute WINDBG y presione CTRL + K para invocar kernel depuración .
  • en com , ingrese: baudrance: 115200, puerto: COM1, restablece: 0 y verifique que tubería y la reconexión son sin marcar (importante ).
  • Se le presentará la siguiente salida: Opened \\\\.\com1 Waiting to reconnect...

Configuración del deporte:

  • ejecutar bootcfg / depuración en / puerto com1 / baud 115200 / id 1 . Para verificar, ejecutar bootcfg . **
  • reiniciar.
  • Muy temprano durante la etapa de arranque, WINDBB en la otra máquina debe detectar el departamento que se está ejecutando.

* Suponiendo que se utiliza VirtualBox. Los usuarios de VMware / KVM probablemente podrán alcanzar los mismos resultados siguiendo pasos similares. Además, para obtener más información, consulte el virtualbox docs .

** Suponiendo que los invitados sean Windows XP. Las versiones posteriores incluyen BCDEdit, que se puede usar como se describe aquí .

Otros consejos

Muy útil, pero se aplica a las máquinas de Windows XP.Puede consultar el siguiente enlace Si necesita configurar 2 máquinas virtuales basadas en Windows7 en un host Linux: http://www.aldeid.com/wiki/category :digital-forensics/computer-forensics/debugger/kernel

Otra opción hoy en día es para habilitar el local de la depuración del kernel.Este viene con algunos limitaciones, sin embargo , se permitirá el acceso a los datos del kernel, mientras que sólo el uso de uno VM.

Este método solo funciona en Windows 8.0 y Windows Server 2012 y más adelante.

Siga estos pasos:

  1. Abra una ventana del Símbolo del sistema como Administrador.
  2. Entrar bcdedit /debug on
  3. Si el equipo no está configurado como el objetivo de una depuración de transporte, entrar bcdedit /dbgsettings local
  4. Reinicie el equipo.

Una vez que se reinicia el sistema, puede ejecutar WinDBG como Administrator, pulse ctrl+k o ir a File -> Attach to kernel -> Local y pulse OK.

Attach to Kernel Option

En ese punto, usted será capaz de ejecutar el kernel sólo los comandos de acceso y núcleo de estructuras:

enter image description here

Probado bajo Windows 10 y con el nuevo WinDBG (versión preliminar).

Referencia: La configuración Local de la Depuración del Núcleo de un Único Equipo Manualmente

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top