Board logo

标题: 腾讯和微点一样的手法 inline hook 深层call ObOpenObjectByPointe [打印本页]

作者: 点饭的百度空间     时间: 2010-4-11 22:10    标题: 腾讯和微点一样的手法 inline hook 深层call ObOpenObjectByPointe

2010年1月5日随笔档案- Jesses'blog - 博客园
http://www.cnblogs.com/Jesses/archive/2010/01/05/1639838.html


inline hook 深层call ObOpenObjectByPointe的实现及用SSDT反HOOK

最近研究TESSAFE.SYS的驱动,GOOGLE搜索到微点也是一样的手法HOOK call ObOpenObjectByPointe,把不完整的代码给编写实现了下。未实现检测,应该是有修改我的代码或恢复HOOK call即重启或蓝屏,我为了方便没实现,下载我改动后驱动文件,用来保护记事本不被OPENprocess。。

然后unhook call ObOpenObjectByPointe 的代码从网上摘来,在搞虚拟机里可以过掉,但主机确是老蓝屏8e代码。原来是代码根本不对,看雪上发的贴,有指出不对的代码拷贝函数,我做下修改为指令长度拷贝,终于可以了。反inline hook 深层call驱动文件,可以下载,源码都在下面了,文件里就没放。注意顺序,必须先开这个驱动才有用,因为是从内存拷贝来的,先让inline hook 深层call驱动加载了,在拷贝内存也是错误的。关闭时倒序来,否则蓝了别怪我,模拟就只是模拟罢了。

//unhok call 这是SSDT hook,在深层call ObOpenObjectByPointe驱动加载前复制NtOpenThread NtOpenProcess 两个代码到别处SSDT。原来主机蓝屏,但虚拟机也实现不蓝,反汇编下看到代码烤过来的不对,果然是拷贝函数没处理细节,做下修改BufferCode函数加了反汇编引擎判断指令长度,按长度来拷贝,再根据指令做重定位。


另外,下面是 原来网上hook 深层call ObOpenObjectByPointe的实现代码 源自于微点

详细:http://www.cnblogs.com/Jesses/archive/2010/01/05/1639838.html




欢迎光临 微点交流论坛 (http://bbs.micropoint.com.cn/) bbs.micropoint.com.cn