|
作者:Tesla.Angela
WIN32下常见的INLINE HOOK,本质上分为2中,一种是强制跳转,一种是CALL替换。这两种方法的缺点就是很容易被ARK发现代理函数在哪里,隐蔽性太差。不知有人观察过没有,IDT虽然有256个“入口函数”,但并非每一个都有意义,很多中断根本没用到。于是我们可以打IDT的主意:找一个无用的中断,把中断函数给替换掉,然后在要HOOK函数的入口改为触发中断的代码。比如你要触发255号中断,那么INT 255的机器码就是CD FF。在WIN32上,函数开头一般是:8B FF 55 8B EC,所以使用255号中断的话,只需要修改1个字节即可实现INLINE HOOK!实现代码非常简短,关于IDT HOOK的代码可以在“补充教程[19]”中找到。至于什么组装原始函数之类的操作,可以直接利用“补充教程[13]”或公开教程里INLINE HOOK的代码。
|
|