检测和恢复SSDT HOOK,INLINE SSDT HOOK

检测和恢复SSDT HOOK,INLINE SSDT HOOK

2008-09-25 来源:梦飞鸟 <script src="http://www.antidu.cn/inc/html/html_add.js"></script> ( 投递新闻稿件
<script src="http://www.antidu.cn/inc/html/contentAdv.js"></script> <script type="text/javascript"><!-- google_ad_client = "pub-3730291377033254"; google_ad_slot = "7307761760"; google_ad_width = 336; google_ad_height = 280; //--> </script> <script style="display: none;" src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>

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/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值