APIHOOK解除APIHook数据,防OD检测APIHook

易语言 2020-04-23 17:38:49

APIHOOK解除APIHook数据,防OD检测APIHook

API HOOK技术是一种用于改变API执行结果的技术,最初有些人对某些api函数的功能不太满意,就产生了如何修改这些api,使之更好的服务于程序的想法,这样api hook就自然而然的出现了。我们可以通过api hook,改变一个系统api的原有功能。基本的方法就是通过hook“接触”到需要修改的api函数入口点,改变它的地址指向新的自定义的函数。
Hook是Windows中提供的一种用以替换DOS下“中断”的系统机制,中文译为“挂钩”或“钩子”。在对特定的系统事件进行hook后,一旦发生已hook事件,对该事件进行hook的程序就会受到系统的通知,这时程序就能在第一时间对该事件做出响应。

想想,自己辛辛苦苦写的数据,人家OD上钩子就给修改了,你会怎么想?
所以,我便写了一个检测和解除APIHook的程序。

来说说原理:
其实就是读取进程中API的Thunk偏移,然后装载DLL,模拟进行内存处理得到真实的,判断函数头长度是否不相同就OK
然后解除就简单了,把内存保护属性重写就OK了

所以这简直就是居家写程序,防OD必备,注意:内核(R0)级别的Hook是不能防的啊(话说能写R0还Hook数据干嘛)