Windbg内核模式调试:如何从驱动模块地址获取DriverObject?
Windbg内核模式下获取驱动对应的DriverObject方法
通过模块名称直接获取
使用内置扩展命令!drvobj,指定驱动名称(无需带.sys后缀)即可查询对应的DriverObject:
!drvobj [驱动名称] [显示级别]
- 例子:要查看
disk.sys对应的DriverObject,执行!drvobj disk 2,末尾的2表示显示详细信息,省略则只展示基础内容。
通过模块地址获取
如果已拿到驱动模块的基地址,可按以下步骤操作:
- 先通过模块地址确认驱动名称:
使用!lm命令结合模块地址过滤,比如模块地址为0xfffff80372100000:
该命令会返回模块的名称、路径等信息。!lm m fffff80372100000 - 拿到名称后,直接用上述
!drvobj命令查询即可。 - 更直接的方式:使用
!kdext*.finddrv扩展命令(需确保kdexts扩展已加载),直接传入模块地址:
该命令会直接输出对应驱动的DriverObject地址及相关信息。!finddrv [模块基地址]
额外说明
!drvobj是Windbg原生支持的命令,无需额外加载扩展。- 若驱动是动态加载的,建议先执行
!reload刷新调试器的模块缓存,确保信息同步。
内容的提问来源于stack exchange,提问作者user846940
相关产品推荐
相关产品推荐

