首页
社区
课程
招聘
[求助]请教下获取ssdt导出函数源地址的疑问
发表于: 2013-2-1 19:32 4823

[求助]请教下获取ssdt导出函数源地址的疑问

2013-2-1 19:32
4823
一、我看过的一般采用读取物理文件的方法获取到导出表,但是似乎ntdll.dll和ntkrnlpa.exe两个文件都可以。两者的导出表有什么关联,我看的ntdll的导出函数数量要少一些。
二、通过枚举内核模块,也一样可以获得已加载内存到的内核文件基地址,为什么还要费周章的去读取物理文件呢?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费
支持
分享
最新回复 (4)
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你好,我也刚学内核,
如果有说的不对的地方欢迎指正。
1.  ntdll中的函数调用的还是ntkrnlpa.exe中导出的函数.
以WIN32 API函数 CreateFile为例:
CreateFile(APP)  --> CreateFileA(kernel32.dll)  --> CreateFileW(kernel32.dll)  --> NtCreateFile(ntdll.dll)  --> NtCreateFile(ntoskrnl.exe)

2. 因为有很多恶意软件或者安全软件都会修改内核中的数据,比如TP会修改SSDT表中的某些函数的前两条指令实现跳转的目的。 所以如果我们要检测某个内核函数是否被修改,或者我们想要自己修改某个内核函数,就需要读取磁盘上的原始数据。
2013-2-1 22:05
0
雪    币: 95
活跃值: (64)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
能够获取到_IMAGE_EXPORT_DIRECTORY结构来,但是其中的函数地址如何换算得到?还有AddressOfNameOrdinals与AddressOfNames和AddressOfFunctions的关联实在不明白,论坛里面好多都是硬编码,实现无法理解,请教一下大家。
2013-2-3 20:37
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
参加<<加密与解密>>  PE文件一章。
2013-2-5 15:59
0
雪    币: 95
活跃值: (64)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
谢谢LS的热心回复,那个关联我大致能懂了。只是AddressOfFunctions这个指向的相对地址还不明白如何推导出原始函数地址。
2013-2-5 22:23
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册