本论坛为只读模式,仅供查阅,不能注册新用户,不能发帖/回帖,有问题可发邮件 xikug.xp (^) gmail.com
查看: 4198|回复: 4

从pdb文件中得到符号地址的方法 [复制链接]

Rank: 2

发表于 2010-5-15 20:57:52 |显示全部楼层
内核的一些模块符号没有在模块文件中导出,但是在额外提供的pdb文件中有导出,因此是不是可以从这些文件中来定位未导出符号呢?Google了一下,得到下面的基本思路:
1,从KPRC得到KdVersionBlock结构
2,从KdVersionBlock结构得到PsLoadedModuleList
3,PsLoadedModuleList列表可以找到需要的模块以及模块的加载基地址
4,读取pdb文件找到符号的RVA地址,将这个地址加上在第3步中得到的基地址就得到符号的入口了,哈哈
不知各位老大是否已经在用这个方法了,欢迎指正并附上一个使用dbghelp解析pdb文件的例子

EnumSymbols.zip

4 KB, 下载次数: 728

Rank: 1

发表于 2010-5-15 22:51:26 |显示全部楼层

Rank: 1

发表于 2010-5-15 22:52:54 |显示全部楼层
谢谢分享..

Rank: 1

发表于 2010-5-16 11:23:08 |显示全部楼层
囧...

Rank: 2

发表于 2010-5-18 00:57:02 |显示全部楼层
还有一个更简洁的办法:driver_object的DriverSection成员就在PsLoadedModuleList上,因此从第3步开始就可以了
您需要登录后才可以回帖 登录 | 立即加入

Archiver|手机版|第8个男人 - 论坛为只读模式,仅供查阅

GMT+8, 2019-6-19 05:53 , Processed in 0.023356 second(s), 11 queries .

Design by pvo.cn

© 2011 Pvo Inc.

回顶部