首页
社区
课程
招聘
[翻译] 利用 Debug Help Library 定位 Windows NT 内核未导出的函数和结构体
发表于: 2018-3-30 11:49 4293

[翻译] 利用 Debug Help Library 定位 Windows NT 内核未导出的函数和结构体

2018-3-30 11:49
4293

原文链接: https://secrary.com/Random/unexported/

许多函数和结构不会被nt导出,例如PsGetNextProcess函数,KeServiceDescriptorTable等等。

我们如何获得所需功能和/或结构的虚拟地址?

有些方法使用模式匹配来查找函数内部的特定函数和/或结构,但是这种查找方式是不可靠的(由于来自MS的更改可能会破坏我们的模式匹配算法)。

使用Microsoft的Debug帮助库怎么样? 我们可以访问映像的符号调试信息,如%systemroot%/ system32 / ntoskrnl.exe,提取所需函数/结构的RVA并添加到nt的地址。

这里使用Psapi的EnumDeviceDrivers获取ntoskrnl.exe的地址,使用SymFromName获取函数/结构的符号信息。

我假设目标系统不包含任何调试相关的可执行文件,如symchk.exe,SymSrv.dll等。

要获取包含ntoskrnl.exe调试信息的.pdb文件,我们需要使用symchk.exe手动下载


将所有必要的文件嵌入到主要的可执行文件并在运行时将其提取出来是一个不错的主意,我们需要下列其他可执行文件:DbgHelp.dll,SymbolCheck.dll,symchk.exe和SymSrv.dll

源代码示例:


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2018-4-4 15:00 被CCkicker编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//