gpt4 book ai didi

portable-executable - PE的日期目录中的 "Import Table address"和 "Import Address Table address"有什么区别?

转载 作者:行者123 更新时间:2023-12-04 07:29:16 25 4
gpt4 key购买 nike

alt text

有谁知道区别吗?

最佳答案

如果您想玩可移植的可执行文件,就没有办法绕过 the specs 的副本。 .

已经有一段时间了,但如果内存正确地为我服务:IT 和 IAT 是相同的,除了 IAT 在解析导入时由 PE 加载程序填充 - 但不要相信我的话,请检查规范:)

编辑:

快速浏览了规范,并刷新了我的内存:
导入表是主结构,您要从中导入的每个 DLL 有一个条目。每个条目都包含一个导入查找表( ILT )和导入地址表( IAT )指针(iirc 这些过去被称为 OriginalFirstThunk 和 |19145|) . ILT 和 IAT 表在磁盘上是相同的,但在运行时 IAT 将填充导入函数的内存地址。

如果您希望能够处理非标准 EXE,则 PE header IAT 字段可能无法 100% 依赖,就像您不能依赖代码和数据指针的开始/大小一样。最好忽略 IAT header 字段并解析 IT。此外,在解析 IT 时,某些可执行文件中将缺少 ILT,只有 IAT - 较旧的 bo​​rland (iirc) 链接器因不生成 ILT 而臭名昭著。

编辑 2:定义

  • IT:导入表(PeCoff 第 6.4.1 节)-每个 DLL 的表 FirstThunk .
  • ILT:导入查找表(PeCoff 第 6.4.2 节)-每次导入的表 IMAGE_IMPORT_DESCRIPTOR .
  • IAT:导入地址表(PeCoff 第 6.4.4 节) - 磁盘上:与 ILT 相同,运行时:填充了导入的函数内存地址。
  • 关于portable-executable - PE的日期目录中的 "Import Table address"和 "Import Address Table address"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3801571/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com