检测和恢复SSDT HOOK,INLINE SSDT HOOK
来源:互联网 发布:php socket编程 编辑:程序博客网 时间:2024/05/16 10:14
检测和恢复SSDT HOOK,INLINE SSDT HOOK
1、简单说下什么是SSDT
SSDT就是一张存于系统内核中的一张表。这个表的作用就是指向一些函数的地址。比如我们调用OPENPROCESS,最终会调用SSDT表中的122号服务。哈~~。
2、SSDT HOOK
现在杀软,NP,安全软件都在争SSDT这个表,这个表已快用烂了。郁闷呀,偶的电脑呀。启动后就给瑞星HOOK了。
所谓SSDT HOOK就是将SSDT表中相应服务号的函数地址改为自己的函数,在自己的函数中进行相应处理后,回调原函数。这样说不知大家可否明白?
3、INLINE SSDT HOOK
当SSDT成为菜B才挂的HOOK后,就又出现了INLINE SSDT HOOK了。
所谓INLINE就是直接修改相应功能服务号函数代码流程,一般是在前5字节处修改,改为JMP XXXXXX,XXXXX为你自己的函数地址,进程相应处理后,把前5字节运行后,再JMP到原函数第6字节开始执行,OK了。哈哈~~。不过现在大家都在用INLINE,所以有些软件为不冲突,进行检测,如果有人先INLINE了,那他就从第6字节开始HOOK。哈哈,道理一样的。
4、恢复SSDT
这个容易些。
1)从内核文件NTXXXX.EXE中获取相应真实的SSDT表,不过这个表的内容要经过处理才是真实有效的。
2)通过驱动得到内核SSDT位置,对刚才获取的SSDT表进行+-运算后就是正确的了。
3)进行比较,不对则HOOK了。
4)恢复的话就是将正确值写到内核SSDT表中。用驱动吧。
5、恢复INLINE SSDT
1)如何得到正确的功能函数代码呢。我在网上找了半天没有发现有用的。呵呵,高手都是一句代过。偶菜呀。自己想办法吧。
强行加载刚才提到的内核文件。因为加载位置和真正内核是不同的,要进行一下重定位修正,同于重定位有3万多条。这么多
都修正吗?很慢的,所以我的方法是对我要读取的代码进行修正下就OK了。快多了。
2)那取多少字节进行比较呢,我取16字节,360的MJ说的,哈哈~~。为什么呢。因为现在两次HOOK的很正常了。一个JMP就是5字节,2个就是10字节 了。所以16字节比较吧。
3)上述都是RING3下实现的,驱动中代码越少越好呀,因为偶菜,代码多保不准系统瘫了。
4)通过驱动读取内核中相应函数代码前16字节,与刚得到的正确的比较。不一样就是HOOK了。
5)恢复的话就是将正确的写到内核中去,当然用驱动了。
结束,哈~~。菜了这么多话,只是按我的理解说的,且这些偶都用代码实现了。这里记录下顺便科普下。哈!!
具体后HOOK到哪了,当然是看JMP到哪了,枚举出系统加载模块,和相应模块加载地址比较就知道了。哈~~
高手看了的话,请指正其中错误。偶菜呀。现在SSDT及INLINE SSDT HOOK都用烂了,偶才懂得了。不是我不明白,这世界变化快呀
原文作者:梦飞鸟 http://blog.zjol.com.cn/
- 检测和恢复SSDT HOOK,INLINE SSDT HOOK
- SSDT inline hook
- SSDT HOOK的恢复
- 对付kernel / fsd inline hook/ssdt hook
- HOOK钩子技术5 SSDT Inline Hook
- Hook SSDT
- SSDT hook
- HOOK SSDT
- SSDT HOOK
- SSDT HOOK
- hook ssdt
- SSDT HOOK
- HOOK SSDT
- HooK SSDT
- SSDT HOOK
- SSDT Hook
- 关于Win7 x64 Shadow SSDT 的探索和 Inline HOOK
- 谈谈 通杀SSDT hook和Shadow SSDT hook的方法
- VS2008 sp1中文版下载地址
- Tips for Windows NT Driver Developers -- Things to Avoid
- Access相关问答
- 网易新出的ubuntu 更新源 自认为很好用
- What Every Driver Writer Needs to Know
- 检测和恢复SSDT HOOK,INLINE SSDT HOOK
- J2EE基础:对于Spring初学者的学习建议
- Visual Studio 2005-基于应用程序中使用 System.Net.mail.SmtpClient 类发送电子邮件时的錯誤
- 刀锋上的舞蹈
- 用VBA代码建立表间字段的关系
- 欧洲创新发布混合地图,超越 Garmin和Google显示技术
- 24点问题的程序实现
- SSDT Hook的妙用-对抗ring0 inline hook
- VB6应用系统的权限管理