API勾取

实际上就是对程序使用的系统API进行Hook

image-20250110233657957

可以修改IAT/EAT/代码,对于直接hook代码,和之前的inlineHook一样
对于IAT,是程序执行对应API代码时,IAT会存放对应函数偏移,

1
2
3
jmp cs:offset
......
offset 真实偏移

可以直接修改这里的真实偏移,然后跳转到自己的代码中,最后跳转到真实偏移地址。

本质上还是Hook,但是要注意参数的传递,具体可以看之前的调用约定那一篇或者具体调试分析。

实践

详见下面这个项目:

43287/AntiAntiDebug_plugin_for_IDA8.3: 一个只支持x64的IDA反调试插件

其中使用了IAThook和InlineHook