You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IMAGE_THUNK_DATA中Function与AddressOfData字段的区别及代码疑问

关于IMAGE_THUNK_DATA字段用法的疑问解答
  • 首先要明确:IMAGE_THUNK_DATA本质是一个联合(union)结构,Function和AddressOfData是同一块内存的不同别名,共享同一个存储位置,只是语义对应不同阶段。
  • 在PE文件未完成导入绑定的阶段(比如刚加载到内存还没处理导入表时),这块内存存储的是IMAGE_IMPORT_BY_NAME的RVA。此时不管读取Function还是AddressOfData,拿到的都是同一个值——有些开发者习惯用Function字段指代这个初始RVA,本质和用AddressOfData没有区别。
  • 当PE完成导入绑定后,这块内存会被覆盖成函数的实际内存地址,这时候才是Function字段的语义,AddressOfData字段不再有意义。
  • 这类代码示例这么写,要么是为了简化逻辑(不管阶段直接用同一个字段读取初始值),要么是延续了特定工具链或老代码的写法,只要逻辑上是在导入绑定前读取这个值,就不会有问题。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 03:42:02