文件 / 二进制 / 压缩

可执行文件头解析看清 ELF、PE 与 Mach-O 的真实字节范围

选择本地文件或示例,再手动查看文件头和节区。

可执行文件头解析

二进制文件

拖入一个 ELF、PE 或 Mach-O 文件,或选择本地文件。

尚未选择文件

仅在浏览器本地读取;文件不会上传,也不会执行。

解析结果

请选择文件或载入示例。

请选择文件或载入示例。

构建产物无法加载时,可执行文件头解析能先回答架构、入口地址和节区偏移是否正确。文件后缀无法说明真实结构。

想做 ELF 文件头查看、PE 文件头解析或 Mach-O 文件头查看时,可执行文件头解析按格式保留原有结构名称。它只读取字节,绝不运行程序。

为什么使用可执行文件头解析

从结构字段追到真实字节,不运行文件。

三种格式按各自规则展开

可执行文件头解析区分 ELF 程序头与节头,沿 DOS 头找到 PE 可选头,逐条列出 Mach-O 加载命令。魔数识别无法解释这些结构。

三列不同颜色的文件头布局;选中的字段连接到对应字节区间。

通用二进制逐架构查看

Mach-O 通用文件包含多个独立切片。选择 arm64 或 x86-64 后,可看到该架构自己的偏移、大小和文件头。

一个通用二进制容器分成两块架构切片,每块都有独立文件头与范围。

从文件走到可核对的偏移

01

先核对输入

解析前显示文件名和字节数。超过 32 MiB 的文件在读入前拒绝;内置示例只是极小的文件头。

  • 格式由魔数字节判定,不依赖后缀。
02

明确触发解析

点击“查看头部”或按 Ctrl/Cmd+Enter。换文件后旧结果失效,复制和下载禁用,直到新一次解析成功。

  • ELF 没有节表可以合法,越界节表则不合法。
03

沿范围核对并导出

展开字段查看十六进制绝对偏移和开头字节。对于通用 Mach-O,切换架构后重新解析再导出 JSON。

  • JSON 不含原始二进制负载。

解析器实际读取的结构

双字节序 ELF32 / ELF64

解析文件头、程序头与节头,保留完整宽度的偏移,并从第 0 节读取扩展编号。刻意缺少节表的文件显示空节表。

PE32 / PE32+ 头链

从 DOS 头偏移定位 PE 签名,读取 COFF、可选头与节表。机器类型、入口 RVA、映像基址和原始节范围分别展示。

薄版与通用 Mach-O

列出 32/64 位文件头、加载命令、段与节。fat 容器保留每个切片的架构、偏移和大小,即使某个切片损坏。

字段对应磁盘字节

点击字段可看十六进制范围。对 ELF NOBITS 和 Mach-O 零填充节,明确标注没有原始文件字节。

解析范围与限制

只读且仅本地
使用浏览器 File API 读取文件,不上传、不抓取 URL,也不执行代码。即使文件包含签名,也不能由此判断可信或安全。
不做逆向工程套件
这是二进制文件结构查看,不反汇编、不反编译;ELF 符号与 DWARF、PE 导入与资源、Mach-O 动态库路径均不深度展开。
32 MiB 与严格越界检查
单文件最多 33,554,432 字节。遍历前核对条目数量、宽度、偏移和长度是否落在整个文件或 Mach-O 切片内。
报告不含原始执行体
复制和下载只导出当前架构的字段、标志位、节区与段范围,不导出原文件字节,也不生成公开结果 URL。

可执行文件头解析常见问题

ELF 文件头怎么查看?

选择 ELF 文件并点击查看头部。可执行文件头解析显示位数、字节序、架构、入口、程序头和节头。

PE 文件的 DOS 头和 NT 头怎么区分?

文件开头的 MZ 属于 DOS 头;0x3C 处的 e_lfanew 指向 PE 签名。工具沿该偏移读取 COFF 和可选头。

Mach-O 文件怎么看架构?

薄版文件从 cputype 读取架构;通用文件先列出 fat 目录的各切片,再查看其独立文件头。

ELF 的程序头和节头有什么区别?

程序头描述装载到内存的段,节头描述链接与分析用的节区。可执行文件头解析将两者分开列出。

如何查看节区的文件偏移和大小?

展开节区查看原始 offset 与 size 字段,再点击范围查看开头字节。NOBITS 节没有对应文件字节。

查看文件头会执行程序吗?

不会。浏览器把文件当字节读取,不启动 ELF、EXE 或 Mach-O,也不发送到服务器。

还有疑问?

用可执行文件头解析检查下一个构建

先试 ELF、PE 与 Mach-O 示例,再检查自己的构建产物。分享 JSON 报告前,请确认关键字段的真实字节偏移。

所选文件只留在当前浏览器标签页。