-
-
[原创] 在WinDbg中观察驱动的启动顺序
-
发表于: 2017-3-16 15:04 2503
-
通过使用windbg,在操作系统加载驱动的关键位置下断点,从而获得驱动的名称,关键是要找准操作系统加载驱动的位置.
“引导-启动”类型的驱动早已被系统加载器加载到内核。
I/O系统会调用IopInitializeBuiltinDriver函数完成“引导-启动”类型的驱动的初始化工作
NTSTATUS
IopInitializeBuiltinDriver(
IN PUNICODE_STRING DriverName,
IN PUNICODE_STRING RegistryPath,
IN PDRIVER_INITIALIZE DriverInitializeRoutine,
IN PKLDR_DATA_TABLE_ENTRY DriverEntry,
IN BOOLEAN IsFilter,
OUT PDRIVER_OBJECT *Result
);
第一个变量为驱动名称
第二个变量为驱动注册表路径
因此,就可以在IopInitializeBuiltinDriver函数下断点,打印出这两个变量
bp nt!IopInitializeBuiltinDriver ".echo DriverName;!ustr poi(esp+4);.echo RegistryPath;!ustr poi(esp+8);gc"
“系统-启动”类型的驱动和正常运行过程中动态加载的驱动都是使用IopLoadDriver这个通用函数加载入内核,IopLoadDriver会调用 MmLoadSystemImage函数,将驱动加载到系统地址空间。
在MmLoadSystemImage函数下断点,就可以看到加载的驱动文件路径
bp nt!MmLoadSystemImage “.echo Driver File;!ustr poi(esp+4);gc”
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
他的文章
- [求助]求个安全网站作友链 1876
- [翻译] 文件系统驱动的加载顺序 4033
- [原创] 在WinDbg中观察驱动的启动顺序 2504
看原图
赞赏
雪币:
留言: