Board logo

标题: [note]inline hook KiInsertQueueApc,比KV 2008更近一层的进程自我保护. [打印本页]

作者: 点饭的百度空间     时间: 2008-5-4 10:20    标题: [note]inline hook KiInsertQueueApc,比KV 2008更近一层的进程自我保护.

作者 WINDOWS内核疯狂爱好者sudami  (黑基版主苏大米)
转自:http://hi.baidu.com/sudami/blog/ ... 8a651a95ca6b9b.html

5.1搞了一天半,总是在__declspec(naked)内局部判断出问题。今天下午忽然恍然大悟:

1. 对于 KiInsertQueueApc这样的fastcall类型的函数要自己完成堆栈平衡等操作;因为该函数调用的太频繁,故可能出现自身循环调用的情况,需要保存寄存器。fastcall函数的inline hook要区别对待。其他类型的直接用MS—REN的hook lib就行了.

2. 对于fastcall类型的,最好不要直接在其内部调用外部函数和全局变量. [个人意见]

3. 判断进程名的时候要注意是否是自己的进程在插APC,否则然系统会死掉,或起不到保护的效果,或者自己的进程什么也做不了。

4. 深层次的inline hook的基本原理如下,堆栈平衡很好实现(当然逃不过带反汇编引擎ARK):
pushfd
pushad
call MyFuction
popad
popfd

综上,做的这个测试程序比KV 2008的进程自我保护更进了一层,加了线程循环恢复inline hook,再做做防内存清0,基本能对付 IceSword、RKU、GMER、狙剑一类的杀戮了。

简单的测试下,各位同学不要瞎起哄哦~~~
btw:感谢r0b1nh00d大哥、zhuwg牛的指导


[ Last edited by 点饭的百度空间 on 2008-5-4 at 10:26 ]
作者: qq200878     时间: 2008-5-4 16:53
微点的自我保护用的就是inline hook ,不知道吗?
作者: gudan     时间: 2008-5-4 22:21
无语,不知道他下一次hook的目标是什么了,没准是int




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