# Windows PE / Linux ELF / Mach-O 二进制头部·节表·导入导出检查器

上传 PE-COFF（.exe/.dll）、ELF 或 Mach-O 二进制，解析 DOS/PE/COFF/可选头、ELF e_ident/程序头/节头、Mach-O 头与加载命令；输出入口点/镜像基址、节表与 RVA↔文件偏移映射、导入/导出表、动态符号与重定位，跨架构注释（x86/x86-64/ARM/AArch64/RISC-V），ASLR/NX/PIE 等安全标志徽章与前 96 字节十六进制预览。

> 标准页面: https://elysiatools.com/zh/tools/windows-pe-linux-elf-mach-o-binary-header-section-import-export-inspector

- **分类:** Development

- **关键词:** PE 文件, ELF 头, Mach-O, 二进制分析, COFF, 导入表, 导出表, 节表, 逆向工程, 可执行文件

## 概述

识别魔数后逐结构解析：MZ → e_lfanew → PE\0\0 → COFF（机器类型/特征位）→ 可选头（0x10B PE32 / 0x20B PE32+；入口点、镜像基址、子系统、DllCharacteristics 的 ASLR/NX/CFG 高位熵标志；16 个数据目录）→ 节表（名称/虚拟大小/RVA/原始数据指针与 R/W/X 特征位），RVA→文件偏移经节区间换算后读取导入表（DLL 名 + hint/name）与导出表。ELF 解析 e_ident（类宽/字节序/OS ABI）、e_type（ET_DYN+PT_INTERP ⇒ PIE）、程序头与节头表、.dynsym/.dynstr 符号名与 .dynamic 的 DT_NEEDED 依赖。Mach-O 解析 32/64 头（cputype、filetype、MH_* 标志）与加载命令（LC_SEGMENT_64/LC_SYMTAB/LC_UUID/LC_MAIN/LC_LOAD_DYLIB…），含字节序翻转检测。纯 TypeScript 实现，无原生依赖；文件仅本地解析。

## 输入项

- **二进制文件（.exe/.dll/.so/.dylib/.o/.bin，≤20MB）** (file): sample-pe64-x64-console.exe

## 适用场景

- 排查动态链接库缺失或函数导出缺失引起的程序启动及加载崩溃问题
- 对未知或可疑二进制进行静态分流，检查其节区属性、入口点与安全编译标志
- 逆向分析与逆向工程前期，快速换算 RVA 与文件偏移并提取导入表符号

## 工作原理

- 读取上传文件的二进制魔数（Magic Number），自动判定为 PE-COFF、ELF 或 Mach-O 结构及对应字节序
- 逐层解析基础头部：PE 结构解析 DOS/COFF/可选头与数据目录，ELF 结构解析 e_ident/程序头/节头表，Mach-O 结构解析 Mach-O 头与 Load Commands
- 计算节表虚拟地址（RVA）与文件物理偏移（Raw Offset）映射关系，提取导入表、导出表、DT_NEEDED 依赖或 LC_LOAD_DYLIB 动态库列表
- 提取并展示 ASLR、DEP/NX、PIE、CFG 等安全特征徽章、架构注释（x86/x64/ARM/AArch64/RISC-V）以及前 96 字节 Hex 预览

## 使用案例

- 软件安全合规审查：批量核对编译产物是否启用了 NX、ASLR 或 PIE 等安全缓解措施
- 跨平台开发调试：检查 Linux .so 文件的 DT_NEEDED 依赖链或 macOS .dylib 的 LC_LOAD_DYLIB 路径
- Windows 动态库集成排查：核对 .dll 文件的导出函数名称（Export Table）与调用方导入表是否匹配

## 常见问题

### 上传的二进制文件会保存到服务器吗？

不会，所有解析均在浏览器本地通过 TypeScript 完成，文件数据不会离开您的设备。

### 工具支持的最大文件体积是多少？

单文件体积最大支持 20MB。

### 支持哪些文件类型和扩展名？

支持 .exe、.dll、.sys、.efi、.so、.o、.a、.dylib、.bin 以及 .elf 等格式的 PE、ELF 与 Mach-O 文件。

### 如何判断 ELF 或 PE 文件是否开启了地址空间随机化（ASLR/PIE）？

PE 文件检查可选头 DllCharacteristics 的 DYNAMIC_BASE 标志，ELF 文件检查 ET_DYN 类型及 PT_INTERP 段以判断 PIE 启用状态。

### 解析结果中 RVA ↔ 文件偏移有什么作用？

帮助分析人员在十六进制编辑器中快速定位内存虚拟地址对应的实际文件字节位置。

## 相关工具

- [APNG IDAT/fdAT 分块流式 deflate 回放与 dispose 方法帧时序分析器](https://elysiatools.com/zh/tools/apng-idat-fdat-chunk-streaming-deflate-replay-and-disposal-method-analyzer): 上传 PNG/APNG，解析动画结构：PNG 签名与逐块 CRC32 校验、IHDR（位深/颜色类型/隔行）、acTL（帧数与播放次数，必须位于首个 IDAT 之前）、fcTL（序号、区域约束 x+y+w+h ≤ 画布、delay_num/delay_den 归一化、dispose_op none/background/previous、blend_op source/over）、IDAT 首帧 + fdAT 后续帧；共享的 fcTL+fdAT 序号必须从 0 连续递增；逐帧回放 deflate 流并核对解压尺寸 = 高 × (1 + 每行字节数)，报告 zlib 损坏；dispose 语义模拟提示首帧 previous 视作 background、零延迟帧等。
- [NSFW图片内容检测器](https://elysiatools.com/zh/tools/nsfw-image-detector): 基于NSFWJS和图像特征的AI内容审核工具，标记上传图片是否含不适宜内容。面向内容审核与合规自查场景，仅分析您上传的文件，不是图片搜索或发现工具。支持GIF/Animated WebP/APNG和JPEG/PNG/WEBP。
- [GIF转Raw像素数据](https://elysiatools.com/zh/tools/gif-to-raw): 将GIF帧导出为Raw像素数据，用于分析、渲染管线和底层图像处理
- [HDR AVIF 转 SDR PNG 色调映射器](https://elysiatools.com/zh/tools/hdr-avif-to-sdr-png): 解码 PQ 或 HLG AVIF，将 BT.2020 转换为 sRGB，并把高光映射到可查看的 SDR PNG。
- [HEIC 转 JPG 转换器](https://elysiatools.com/zh/tools/heic-to-jpg): 将 HEIC 照片解码为兼容 JPEG，并可控制质量、色度抽样和背景色。
- [图像差异计算](https://elysiatools.com/zh/tools/image-difference): 计算两张图像之间的差异以识别变化或创建比较蒙版
- [Markdown转PDF转换器](https://elysiatools.com/zh/tools/markdown-to-pdf-converter): 将Markdown文件转换为PDF文档，支持格式化、语法高亮和样式
- [图片配色提取器](https://elysiatools.com/zh/tools/image-color-palette-extractor): 上传图片后提取主色调，导出代码可用的色板片段，并检查对比度

## 示例

- [Windows C++ 图像处理示例](https://elysiatools.com/zh/samples/windows-image-processing-cpp): Windows C++ 图像处理示例，包括读取/保存图像、调整大小和使用Windows Imaging Component进行格式转换
- [Windows 图像处理 - C# 示例](https://elysiatools.com/zh/samples/windows-image-processing-csharp): Windows平台C#图像处理示例，包括图像操作、过滤、格式转换和高级计算机视觉操作
- [Web Python 图像处理示例](https://elysiatools.com/zh/samples/web-image-processing-python): Web Python 图像处理示例，使用 PIL/Pillow 包括读取、保存、缩放和格式转换
- [Windows 文件操作 - C++ 示例](https://elysiatools.com/zh/samples/windows-file-operations-cpp): Windows平台C++文件操作示例，包括文本文件读写、文件复制和目录遍历
