标题:
腾讯和微点一样的手法 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