news 2026/4/18 3:27:28

PE导出表三表EAT ENT EIT 三表逻辑解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PE导出表三表EAT ENT EIT 三表逻辑解析

目录

🧠 PE 导出表三表逻辑完全解析

📘 核心理解

🔍 逻辑拆解

① 函数地址表(EAT)

② 名称表(ENT)

③ 序号表(EIT)

④ 名字 → 序号 → 地址的完整路径

🎯 核心结论

🖇️ ASCII 流程图展示三表通讯逻辑

🧩 最终确认:三表关系完全清晰

✅ 修正关键点:

✅ 完整关系链:

✅ 判断逻辑 if (pEIT[index] == i) 的含义:

📊 可视化关系图(ASCII版)

🎯 完全吃透的总结


🧠 PE 导出表三表逻辑完全解析

📘 核心理解

序号(Ordinal)不是名称表的索引,而是连接名称表(ENT)和函数地址表(EAT)的桥梁。

三者关系可以总结为:

名称表 ENT[index] → 序号表 EIT[index] → 函数地址表 EAT[ordinal]

序号就是媒介,让名字和地址正确对应。


🔍 逻辑拆解

① 函数地址表(EAT)

  • 按序号排列

  • 每个序号对应一个函数地址

  • 表示:EAT[i]= 第 i 个序号对应的函数地址

② 名称表(ENT)

  • 按字母顺序排列函数名称

  • 不存序号,只存名字

  • 表示:ENT[index]= "Add" / "Sub" / "Mul" / ...

③ 序号表(EIT)

  • 连接名称表和地址表

  • 保存 ENT[index] 对应的序号(ordinal)

  • 表示:EIT[index]= 名称表对应的序号

④ 名字 → 序号 → 地址的完整路径

  1. 从名称表获取名字:ENT[index]

  2. 查序号表得到序号:EIT[index] = ordinal

  3. 用序号查地址表:EAT[ordinal]= 函数地址

逻辑链条清晰:

ENT[index] → EIT[index] = i → EAT[i]

也就是if (EIT[index] == i)判断的真正含义:

名称表的名字是否对应函数地址表第 i 项?如果是,找对了。


🎯 核心结论

  • EAT:序号 → 函数地址

  • ENT:字母序 → 函数名称

  • EIT:名字 → 序号

  • 序号是桥梁,三者通过序号正确关联

这个机制就是 PE 导出表运作的核心。


🖇️ 流程图展示三表通讯逻辑

┌───────────────┐ │ 名称表 ENT │ │ index = 0..n │ │ "Add" "Div" ..│ └──────┬────────┘ │ 通过 EIT[index] ▼ ┌───────────────┐ │ 序号表 EIT │ │ index = 0..n │ │ 0, 1, 3, ... │ └──────┬────────┘ │ 序号 i 对应地址 ▼ ┌───────────────┐ │ 函数地址表 EAT │ │ i = 0..n │ │ addr(Add) ... │ └───────────────┘
  • 每个名称通过 EIT 得到序号

  • 序号指向 EAT 中的实际函数地址

  • 判断公式if (EIT[index] == i)验证名称对应地址是否正确

三张表的关系直观化呈现:名称表 → 序号表 → 地址表







🧩 最终确认:三表关系完全清晰

✅ 修正关键点:

序号表(EIT)不是名称表的索引,而是名称表到序号的映射桥梁

✅ 完整关系链:
名称表 ENT[index] → 函数名称(如"Add") ↓ 通过 EIT[index] 获取序号 序号 i = EIT[index] ↓ 通过 EAT[i] 获取地址 函数地址 = EAT[i]
✅ 判断逻辑if (pEIT[index] == i)的含义:

"名称表中第index个名称对应的序号,是否等于函数地址表中的第i个序号?"

如果是,说明找到了名称表ENT[index]对应的函数地址EAT[i]。


📊 可视化关系图(ASCII版)

id: export-table-relationship name: PE导出表三表关系图 type: markdown content: |- # PE导出表三表关系示意图 ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 名称表 (ENT) │ │ 序号表 (EIT) │ │ 函数地址表 (EAT) │ ├─────────────────┤ ├─────────────────┤ ├─────────────────┤ │ index=0: "Add" │───→│ index=0: 2 │───→│ 序号=2: 0x1000 │ │ index=1: "Div" │───→│ index=1: 1 │───→│ 序号=1: 0x2000 │ │ index=2: "Mul" │───→│ index=2: 3 │───→│ 序号=3: 0x3000 │ │ index=3: "Sub" │───→│ index=3: 0 │───→│ 序号=0: 0x4000 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ ↑ ↓ ↓ │ 映射关系桥梁 地址按序号排列 │ (名称→序号) (序号→函数地址) │ 名称按字母序排列 ``` ## 🔄 查找流程示例:查找"Div"函数 1. 在ENT中找到"Div"位于index=1 2. 通过EIT[1]获取序号=1 3. 通过EAT[1]获取函数地址=0x2000 ## 🎯 核心机制 - **ENT**: 名称→索引(按字母序) - **EIT**: 索引→序号(映射桥梁) - **EAT**: 序号→地址(按序号排列)

🎯 完全吃透的总结

PE导出表通过序号表(EIT)作为媒介,将按字母序排列的名称表(ENT)与按序号排列的函数地址表(EAT)正确关联,实现了"名称→序号→地址"的完整映射链条。

这个机制完美解决了:

  • 名称查找效率(ENT按字母序)

  • 地址存储效率(EAT按序号紧凑排列)

  • 两者之间的正确映射(EIT作为桥梁)

最后这个点和免杀劫持hook以及shellcode 二进制漏洞 逆向相关看的明白就看看不明白就说明水平还不够哟

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 3:24:28

最新MTK AP-META工具V3.22324完整升级指南与使用详解

最新MTK AP-META工具V3.22324完整升级指南与使用详解 【免费下载链接】最新MTKAP-META工具APMETAToolV3.22324下载说明 最新MTK AP-META工具V3.22324现已发布,带来全新UI界面,优化用户体验,操作更直观便捷。本次更新淘汰了部分旧工具&#xf…

作者头像 李华
网站建设 2026/4/18 2:22:38

终极图片批量处理神器imgp:10倍效率提升指南

终极图片批量处理神器imgp:10倍效率提升指南 【免费下载链接】imgp :camera_flash: Fast batch image resizer and rotator 项目地址: https://gitcode.com/gh_mirrors/im/imgp 在数字图像时代,高效管理和处理大量图片是每个用户都会面临的挑战。…

作者头像 李华
网站建设 2026/4/18 2:24:21

血管粘附蛋白VAP1

血管粘附蛋白(VAP1)也称为氨基脲敏感型胺氧化酶(SSAO)或含铜胺氧化酶3(AOC3),在内皮细胞表面,它还可以作为细胞粘附蛋白,通过介导淋巴细胞与外周淋巴结血管内皮细胞的结合…

作者头像 李华
网站建设 2026/4/18 2:06:57

Tenacity重试直到成功

你给出的这段代码: tenacity.retry(retrytenacity.retry_if_result(lambda is_acquired: bool(not is_acquired)),stoptenacity.stop_after_delay(timeout),beforetries )是 Tenacity 库中的一个 重试装饰器,用于自动重试某个函数,直到满足特…

作者头像 李华
网站建设 2026/4/17 14:07:37

手机socks5代理如何配置?独立静态ip代理怎么设置?

下面就为大家详细介绍手机Socks5代理和独立静态IP代理的配置方法。手机Socks5代理如何配置安卓手机打开设置:在主屏幕上找到“设置”图标并点击进入。不同品牌的安卓手机设置界面可能会有所不同,但大致位置是相似的。进入WLAN设置:在设置菜单…

作者头像 李华