Hexter

Hexter 对比 Hex Fiend:Mac 上该选哪款十六进制编辑器

如果你在 Mac 上搜索十六进制编辑器,几乎肯定会碰到 Hex Fiend。它免费、开源,几乎在每一份"Mac 最佳十六进制编辑器"榜单上都是默认推荐。它也确实是款优秀的软件。这篇文章不是一篇"为什么我们的应用更好"的软文,而是诚实地看一看:Hex Fiend 在哪些场景下仍然是正确的选择,而 Hexter 又在哪些方面做得足够不同、值得一提。

简短版

Hex Fiend 是一款成熟、免费、开源的工具,主要围绕着在超大规模下的原始编辑能力打造。Hexter 是一款较新的应用,围绕着另一个优先级构建:让你在只是想看看某个文件时,很难意外地把它弄坏。如果你已经完全清楚自己在做什么,需要从容地比对或编辑几十 GB 的文件,那么就今天而言,Hex Fiend 是更胜任的工具。如果你想要一款默认就谨慎、开箱即懂常见文件结构的十六进制编辑器,那正是 Hexter 的设计初衷。

逐项对比

Hex Fiend Hexter
价格 免费、开源(BSD 许可) 尚未在 Mac App Store 上架
大文件处理 无需加载进内存即可处理约 118 GB 的文件 通过分块缓存按需读取字节;尚未在 Hex Fiend 的规模上做过基准测试
编辑安全性 有一个可以启用或设为默认的显式只读模式,但它本身并不是开箱即用的默认状态 始终以只读方式打开每一个文件,且没有任何偏好设置可以更改这一默认;编辑需要显式切换开关,改动会停留在一个可撤销的补丁层中,直到你存储
覆盖保护 标准存储;文档中未提及内置的备份步骤 覆盖原文件需要确认,并提供一份自动备份副本(一个单独的 .hexter-backup 文件,每次后续存储时都会被替换,而非带时间戳的历史记录)
二进制比对 支持感知插入/删除的比对;其文档或发布说明中任何地方都未记载大小上限 采用真正的比对算法,但目前对超大比较设有上限,超过该大小时会回退到较粗略的结果
内置结构解析 内置一个确实相当庞大的模板库(约 17 个类别),但需要你手动浏览并套用模板 打开时自动检测并解析 PNG、ZIP、Mach-O、WAV 和 SQLite 结构,无需挑选模板
哈希 非内置功能 CRC32、Adler32、MD5、SHA-1、SHA-256 和 SHA-512,在后台对文件计算
字符串、书签、异常检测 未内置 全部内置:字符串提取、带备注的命名书签,以及对熵值突变、可疑字节段和格式签名不匹配的扫描
界面 AppKit,功能扎实,历史已超过十年 原生 SwiftUI,支持深色模式,为当前的 macOS 打造
可扩展性 两条款 BSD 许可,可作为框架嵌入其他应用 并非为嵌入设计;是一款独立应用
自定义二进制模板 通过其模板系统支持任意格式 尚不支持;五个内置解析器涵盖常见格式,但没有用户自定义的模板语言

Hex Fiend 仍是更好选择的场景

如果你经常处理几十 GB 的文件,比如固件转储、磁盘映像、大型数据库导出,那么 Hex Fiend 的内存模型及其在该规模上的实战记录就很难反驳。它的比对工具没有记载任何大小上限,如果你的工作涉及比较大型二进制文件,这一点很重要。它还是免费的,这本身就有价值;而如果你正在打造一款需要嵌入十六进制编辑组件的工具,它的 BSD 许可和框架设计能让这成为可能,这是独立应用做不到的。

Hex Fiend 也已经内置了一个可观的模板库,约 17 个类别,涵盖可执行文件、归档、音频等,所以在结构化格式方面它并非从零起步。如果你需要为某种尚未涵盖的冷门或专有格式定制模板,Hex Fiend 的模板系统(以及在这个方向上走得更远的 010 Editor 或 ImHex 等工具)能满足你。Hexter 的结构解析对它所认识的五种格式(PNG、ZIP、Mach-O、WAV、SQLite)表现良好,但它不允许你定义自己的格式。

Hexter 做得不同的地方

核心差异不是某个功能,而是一个默认设置。Hex Fiend 确实有只读模式,但你得知道要去开启它(或在偏好设置里把它设为默认);开箱状态下,它以可编辑模式打开文件。Hexter 始终以只读方式打开每一个文件,且没有任何设置可以更改。编辑是你有意开启的动作,改动会保留在一个补丁层中,你可以在任何内容触及原文件之前审阅并还原它们。如果你花在看文件上的时间多于编辑文件,而大多数十六进制编辑器的使用场景其实是查看而非编辑,那么这个默认设置的重要性远超它听起来的分量。它意味着打开一个陌生的文件,无论是别人的配置、下载来的固件映像,还是你正在调试的文件,默认都不带任何风险,而无需你先记着去翻一下开关。

第二个差异是当你打开一个 Hexter 认识的文件时会自动发生什么。你看到的不再是一整面扁平的十六进制,而是真实的结构:PNG 的分块边界及其类型和 CRC、ZIP 归档的本地文件头、Mach-O 二进制的加载命令、SQLite 文件的头部字段,都被解析出来并陈列在原始字节旁边,无需任何设置。Hex Fiend 的内置模板也能给你类似的细节,但你得先浏览模板列表并自己套用一个。

除此之外,哈希、字符串提取和异常检测(熵值突变、签名不匹配、可疑字节段)都直接内置在 Hexter 中,而在 Hex Fiend 的世界里,这些通常是另一款单独的工具。

诚实的推荐

如果你已经熟悉十六进制编辑器、需要处理非常大的文件,或者想要一款有着悠久记录和活跃社区的免费工具,那就用 Hex Fiend。如果你想要一款默认就假设你可能在查看一个尚未完全信任的文件、默认不去触碰它、并且无需任何设置就能告诉你更多常见格式信息的十六进制编辑器,那就用 Hexter。两者都没有错。它们只是围绕着关于"谁在用、为什么用"的不同假设而打造。

Hexter 正在积极开发中。如果默认只读、内置结构解析和现代原生界面正是你想从一款十六进制编辑器中得到的,那就是值得关注的那款应用。