2026/6/2 15:29:49
网站建设
项目流程
加强网站硬件建设方案,杨凌开发建设局网站,网店推广方式有哪些,制作好网站怎么导入目录
#x1f9e0; PE 导出表三表逻辑完全解析
#x1f4d8; 核心理解
#x1f50d; 逻辑拆解
① 函数地址表#xff08;EAT#xff09;
② 名称表#xff08;ENT#xff09;
③ 序号表#xff08;EIT#xff09;
④ 名字 → 序号 → 地址的完整路径
#x1…目录 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] 名称表对应的序号④ 名字 → 序号 → 地址的完整路径从名称表获取名字ENT[index]查序号表得到序号EIT[index] ordinal用序号查地址表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) │ ├─────────────────┤ ├─────────────────┤ ├─────────────────┤ │ index0: Add │───→│ index0: 2 │───→│ 序号2: 0x1000 │ │ index1: Div │───→│ index1: 1 │───→│ 序号1: 0x2000 │ │ index2: Mul │───→│ index2: 3 │───→│ 序号3: 0x3000 │ │ index3: Sub │───→│ index3: 0 │───→│ 序号0: 0x4000 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ ↑ ↓ ↓ │ 映射关系桥梁 地址按序号排列 │ 名称→序号 序号→函数地址 │ 名称按字母序排列 ## 查找流程示例查找Div函数 1. 在ENT中找到Div位于index1 2. 通过EIT[1]获取序号1 3. 通过EAT[1]获取函数地址0x2000 ## 核心机制 - **ENT**: 名称→索引按字母序 - **EIT**: 索引→序号映射桥梁 - **EAT**: 序号→地址按序号排列 完全吃透的总结PE导出表通过序号表EIT作为媒介将按字母序排列的名称表ENT与按序号排列的函数地址表EAT正确关联实现了名称→序号→地址的完整映射链条。这个机制完美解决了名称查找效率ENT按字母序地址存储效率EAT按序号紧凑排列两者之间的正确映射EIT作为桥梁最后这个点和免杀劫持hook以及shellcode 二进制漏洞 逆向相关看的明白就看看不明白就说明水平还不够哟