IAT HOOK适合新手学习的简单代码

易语言 2020-04-03 14:09:12

IAT HOOK适合新手学习的简单代码

调试模式不可以,需要编译出来,为了方便下载,编译后打包刚好超过3MB.就没编译.

易语言的信息框就是messageboxA,反而模块中的MessageBoxA却hook不到...没有看模块的源码,也不知道是哪个模块里面的.这里请教高手解答一下..

讲一下这个hook的过程吧,比较有意思的,而且还有很大的拓展:
1.exe,dll可以统称为模块,dll其实和exe本质上是一样的.这里统称为PE文件.
2.当PE文件加载到内存的时候,导入表内保存的需要导入的函数列表,会被释放到内存,同时IAT表中原来的xx会被系统修改为真实的地址.
比如messagebox的真实地址就会被保存到进程空间的IAT表中!从此就不变了,除非重启.
3.那么如果我们自己做一个假函数(参数数量,参数类型,返回值保持一致即可),把加载后的IAT表中这个messageboax的真实地址替换成我们的假函数的地址...那么,程序跳转(也就是call)的时候,
就会跳转到我们的函数里面,我们的函数里面可以随意做任何事情.
还有很多hook的思路,硬编码注入,无模块注入,远程线程注入,手工加载PE,双进程,加壳技术,输入法注入等