概述:WinDbg 插件 SDbgExt,提供扩展调试功能。

0x01、插件概述

SDbgExt 是一个功能丰富的 WinDbg 扩展插件,提供了许多实用的调试命令和功能。

GitHub 仓库

0x02、安装方法

手动安装

  1. 从 GitHub 下载最新版本
  2. SDbgExt.dll 复制到 WinDbg 的 ext 目录:
    C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\ext\
    
  3. 在 WinDbg 中加载插件:
    .load sdbgext
    

自动加载

在 WinDbg 初始化脚本中添加:

.load sdbgext

0x03、常用命令

进程相关

# 列出进程对象
!processes

# 显示进程详情
!process [address]

# 显示线程信息
!threads

对象管理器

# 显示对象目录
!object [path]

# 列出对象类型
!objecttypes

# 查找对象引用
!findobject [name]

句柄相关

# 显示句柄表
!handles

# 查找特定句柄
!handle [value]

# 显示句柄详细信息
!handleinfo [handle]

回调相关

# 列出进程创建回调
!pscreatecb

# 列出线程创建回调
!threadcreatecb

# 列出镜像加载回调
!imageloadcb

内存相关

# 显示堆信息
!heapinfo [heap]

# 显示池标签
!pooltags

# 显示内存区域
!memregions

注册表相关

# 显示注册表回调
!regcallbacks

# 显示注册表配置
!regconfig

0x04、高级功能

对象追踪

# 启用对象追踪
!objtrace on

# 查看对象追踪结果
!objtrace list

# 停止对象追踪
!objtrace off

句柄泄漏检测

# 开始检测句柄泄漏
!trackhandles on

# 显示追踪结果
!trackhandles list

# 清除追踪
!trackhandles clear

回调分析

# 显示所有注册的回调
!callbacks all

# 过滤特定类型
!callbacks process
!callbacks thread
!callbacks image
!callbacks registry

0x05、示例用法

分析进程创建回调

0: kd> !pscreatecb
Process Create Callbacks:
  Address          Module           Callback
  fffff800`12345000 ntoskrnl.exe    PspCreateProcessNotifyRoutine
  fffff800`12346000 driver.sys      MyCreateProcessCallback
  ...

查找对象句柄

0: kd> !findobject \Device\MyDevice
Found 3 references:
  Process: 4 (PID: 1234), Handle: 0x100
  Process: 8 (PID: 5678), Handle: 0x200
  Kernel reference at fffff800`12345678

检查注册表回调

0: kd> !regcallbacks
Registry Callbacks:
  Count: 5
  [0] fffff800`12340000 - driver.sys!RegCallback
  [1] fffff800`12350000 - antivirus.sys!RegMonitor
  ...

0x06、与其他插件配合

与 SOS 配合

# 加载顺序
.load sdbgext
.load sos

# 结合使用
!processes
!clrstack

与 Sysinternals 工具配合

# 获取进程信息
!processes

# 结合 Procmon 等工具分析

0x07、常见问题

插件加载失败

  1. 检查架构匹配(x64 vs x86)
  2. 确认路径正确
  3. 检查依赖库是否存在

命令执行错误

  1. 确认调试会话类型(内核/用户)
  2. 检查参数格式
  3. 确保足够的权限

0x08、参考文章


更新时间: 2026-03-27