API勾取实际上就是对程序使用的系统API进行Hook
可以修改IAT/EAT/代码,对于直接hook代码,和之前的inlineHook一样对于IAT,是程序执行对应API代码时,IAT会存放对应函数偏移,
123jmp cs:offset......offset 真实偏移
可以直接修改这里的真实偏移,然后跳转到自己的代码中,最后跳转到真实偏移地址。
本质上还是Hook,但是要注意参数的传递,具体可以看之前的调用约定那一篇或者具体调试分析。
实践详见下面这个项目:
43287/AntiAntiDebug_plugin_for_IDA8.3: 一个只支持x64的IDA反调试插件
其中使用了IAThook和InlineHook