导入表目标API的地址跟GetProcAddress返回的目标API地址一样吗,该怎么处理

导入表目标API的地址跟GetProcAddress返回的目标API地址一样吗
前面举例说明了CAPIHook 类的用法,使用它最大的好处是开发出来的程序运行稳定,
但是缺点也是很明显的,比如说目标进程在被HOOK 之前调用GetProcAddress 函数取得一个
API 的地址,然后即便是CAPIHook 类改变了目标进程中各模块的导入表,也 HOOK 了
GetProcAddress 函数,目标进程还是可以使用之前取得的地址正确地调用原来的 API 函数。而
通过覆盖API 函数执行代码挂钩的CULHook类却可以防止这种情况发生,虽然这个类存在线
程同步问题,但是绝大部分程序使用单线程来收发网络数据,所以使用 CULHook类来截获网
络数据仍然是一个比较好的选择。 


我想问CAPIHook也是覆盖了导入表目标API的地址 CULHook也是覆盖GetProcAddress返回的目标API地址
怎么CAPIHook就不可以“防止这种情况发生”,而 CULHook却可以“防止这种情况发生”,难道导入表的API地址跟GetProcAddress返回的目标API地址不一样?他们不都是这个模块的一样的逻辑地址吗,如果不一样,请详细说明

------解决方案--------------------
你所说的CAPIHook应该是IAT Hook吧
CULHook是修改API前几个字节
方法都不同,
GetProcAddress只会查询所需DLL的导出表,当然会跳过被Hook模块(exe)的导入表,所以IAT Hook方法无效
------解决方案--------------------
根据你的代码,CULHook覆盖的是函数的代码,不是地址