首页
社区
课程
招聘
[讨论]SSDT函数中Ininehook的问题
发表于: 2013-11-8 17:19 4851

[讨论]SSDT函数中Ininehook的问题

2013-11-8 17:19
4851
最近在做检测SSDT表中函数的inlinehook,由于刚接触驱动,有几个问题,希望得到帮助。
1、在得到SSDT表中的当前和原始函数地址后,通过加载ntkrnlpa.exe得到原始函数内容,为了得到函数的长度,我将所有SSDT表中的函数按地址排列后,相减得到函数长度,这里不知道是否正确?
2、在比较函数内容时,基本上每个函数都有许多字节不一样,大部分长度为3,这里怎么判断是不是真的inline hook了?
谢谢各位

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 40
活跃值: (672)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
那是你没冲定位计算才出现的误差吧直接取是不行的
2013-11-8 18:20
0
雪    币: 85
活跃值: (51)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
1.SSDT表只是ntkrnlpa.exe模块N多函数中的一部分,是不是集中排列的这个不清楚,除非你确定,不然,猜测这种可能性很小,具体没研究,待楼主自己试验下
2.启动的时候已经加载ntkrnlpa.exe,你这里是否用的文件映射?映射的话需要模拟现存的ntkrnlpa.exe模块环境,比如模块当前的基址,自处理里面所有的重定位,这两点处理好了,直接比较应该就是比较可靠的
2013-11-8 20:13
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
1、这个也没有试,当不同字节数小于等于3个时我将其排除掉,这样统计下来SSDT表里面的函数被hook的个数在10个以内,不知道这样能不能说明这个问题?
2、我是用的文件映射来做的,得到了基址,然后对比的
2013-11-9 10:12
0
雪    币: 110
活跃值: (34)
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
5
注意某些指令后面的地址是绝对地址,这样重载的内核中的代码就会和原有内核中不一样。
不过这些基本都会被重定位,处理一下就好。
另外建议用好微软的内核调试符号
2013-11-9 14:02
0
游客
登录 | 注册 方可回帖
返回
//