WDBgark es una extensión (Biblioteca Dynamic) para las herramientas de depuración de Microsoft para Windows. El objetivo principal es ver y analizar anomalías en el núcleo de Windows usando el depurador del kernel. Es posible ver varias devoluciones de llamada del sistema, tablas de sistema, tipos de objetos, etc. Para una vista más fácil de usar, la extensión usa DML. Para la mayoría de los comandos, se requiere conexión del modo de kernel. Siéntase libre de usar la extensión con depuración en modo de núcleo en vivo o con análisis de volcado de bloqueo en modo kernel (algunos comandos no funcionarán). Se requieren símbolos públicos, así que úselos, forzarlos para recargarlos, ignorar los problemas de la suma de verificación, prepararlos antes del análisis y estará feliz.
¡Múltiples objetivos de depuración no es compatible!
Windows Beta/RC es compatible con el diseño, pero lea algunas notas. Primero, no me importan las construcciones marcadas. En segundo lugar, no me importa si no tienes símbolos (público o privado). IA64/ARM no es compatible (y no lo hará).
Las fuentes se organizan como una solución Visual Studio 2017.
El evento posterior a la construcción está habilitado para la construcción de depuración. Copia automáticamente la extensión vinculada en la carpeta de complementos de Windbg (por ejemplo, objetivo x64:
"copy /B /Y "$(OutDir)$(TargetName)$(TargetExt)" "$(WindowsSdkDir)Debuggersx64winext$(TargetName)$(TargetExt)" ).
Desapercibido.
Sí, es posible construir todas las cosas usando script por lotes simples.
C:Program Files (x86)Windows Kits10Debuggersx64winextC:Program Files (x86)Windows Kits10Debuggersx86winext 0: kd> .load wdbgark
0: kd> .chain
Extension DLL search Path:
<...>
Extension DLL chain:
wdbgark: image 2.5.0.0, API 2.5.0, built Fri Oct 20 17:54:03 2017
[path: C:Program Files (x86)Windows Kits10Debuggersx64winextwdbgark.dll]
dbghelp: image 10.0.16299.15, API 10.0.6,
[path: C:Program Files (x86)Windows Kits10Debuggersx64dbghelp.dll]
ext: image 10.0.16299.15, API 1.0.0,
[path: C:Program Files (x86)Windows Kits10Debuggersx64winextext.dll]
exts: image 10.0.16299.15, API 1.0.0,
[path: C:Program Files (x86)Windows Kits10Debuggersx64WINXPexts.dll]
kext: image 10.0.16299.15, API 1.0.0,
[path: C:Program Files (x86)Windows Kits10Debuggersx64winextkext.dll]
kdexts: image 10.0.16299.15, API 1.0.0,
[path: C:Program Files (x86)Windows Kits10Debuggersx64WINXPkdexts.dll]
0: kd> !wdbgark.help
Commands for C:Program Files (x86)Windows Kits10Debuggersx64winextwdbgark.dll:
!help - Displays information on available extension commands
!wa_apiset - Output user-mode and/or kernel-mode ApiSet map
!wa_callouts - Output kernel-mode win32k callouts
!wa_checkmsr - Output system MSRs (live debug only!)
!wa_chknirvana - Checks processes for Hooking Nirvana instrumentation
!wa_cicallbacks - Output kernel-mode nt!g_CiCallbacks or nt!SeCiCallbacks
!wa_ciinfo - Output Code Integrity information
!wa_colorize - Adjust WinDBG colors dynamically (prints info with no
parameters)
!wa_crashdmpcall - Output kernel-mode nt!CrashdmpCallTable
!wa_drvmajor - Output driver(s) major table
!wa_eop - Checks processes for Elevation of Privilege
!wa_gdt - Output processors GDT
!wa_haltables - Output kernel-mode HAL tables: nt!HalDispatchTable,
nt!HalPrivateDispatchTable, nt!HalIommuDispatchTable
!wa_idt - Output processors IDT
!wa_lxsdt - Output the Linux Subsystem Service Descriptor Table
!wa_objtype - Output kernel-mode object type(s)
!wa_objtypecb - Output kernel-mode callbacks registered with
ObRegisterCallbacks
!wa_objtypeidx - Output kernel-mode nt!ObTypeIndexTable
!wa_pnptable - Output kernel-mode nt!PlugPlayHandlerTable
!wa_process_anomaly - Checks processes for various anomalies
!wa_psppico - Output kernel-mode Pico tables
!wa_scan - Scan system (execute all commands)
!wa_ssdt - Output the System Service Descriptor Table
!wa_systables - Output various kernel-mode system tables
!wa_systemcb - Output kernel-mode registered callback(s)
!wa_ver - Shows extension version number
!wa_w32psdt - Output the Win32k Service Descriptor Table
!wa_w32psdtflt - Output the Win32k Service Descriptor Table Filter
!wdrce_copyfile - Copy file (live debug only!)
!wdrce_cpuid - Execute CPUID instruction (live debug only!)
!help <cmd> will give more information for a particular command
P: ¿Cuál es el objetivo principal de la extensión?
R: Bueno, primero es solo educativo. Segundo, por diversión y ganancias.
P: ¿Sabes sobre Pykd? Puedo escribir todo el anti-rootkit usando Python.
R: Sí, lo sé, pero C ++ es mucho mejor.
P: ¿Dónde está la versión 1.0?
A: Perdido en el espacio del código de Google.
P: ¿Cuándo comenzó el proyecto?
R: febrero de 2013 en el código de Google.
P: ¿Qué versión debo usar?
R: Utilice solo la versión x64. En la era de X64 no sé por qué diablos es posible que necesite usar la versión X86. X64 WindBG puede depurar tanto x86 como x64. El bitness del sistema operativo del host es la única limitación.
P: ¿Cómo puedo ayudar?
A: Extienda una palabra. Informar problemas y solicitudes de funciones. Estoy abierto a cualquier sugerencia. ¡Gracias!
P: ¿Qué tipo de volcado de memoria es mejor usar con una extensión?
A: volcado de memoria completo.
P: ¿Cómo informar un problema?
R: No dude en informar un problema con GitHub o correo electrónico directamente, pero por favor, adjunte el archivo de volcado de bloqueo de memoria completo.
Wiki puede ayudar.
Este software se lanza bajo la licencia GNU GPL V3. Consulte el archivo de copia para el texto completo de la licencia y esta pequeña adición.