你的十六进制编辑器应该给字节上色

Hacker News Top 工具

摘要

一篇博客文章主张,十六进制编辑器应为字节着色,以便让二进制数据中的模式更易被察觉和分析。

暂无内容
查看原文 导出为 Word 导出为 PDF
查看缓存全文

缓存时间: 2026/04/23 08:34

# 你的十六进制编辑器应该给字节上色 来源:https://simonomi.dev/blog/color-code-your-bytes/ alice pellerin • 2026-03-31 经常看到十六进制编辑器¹长这样,我就替用它的人难受(如果那个人就是我自己,就更惨了): ``` 00000000 00 00 02 00 28 00 00 00 88 15 00 00 C4 01 00 00 ⋄⋄•⋄(⋄⋄⋄ו⋄⋄ו⋄⋄ 00000010 14 00 00 00 03 00 00 00 00 01 00 00 03 00 00 00 •⋄⋄⋄•⋄⋄⋄⋄•⋄⋄•⋄⋄⋄ ... ``` 纯字节列表让人很难一眼看出亮点。来,试试在这堆数据里找到唯一一个 `C0`: ``` 00000000 15 29 21 25 03 2F 2E 2B 15 11 24 3F 10 14 3B 13 •)!%•/.+••$?••;• ... ``` 再看带颜色的版本: ``` 00000000 37 2D 08 13 0D 0B 18 1D 02 1A 2D 12 2A 0D 0F 27 7-••␍•••••-•*␍•' ... ``` 不同颜色让唯一字节瞬间跳出来!人脑对视觉模式超敏感——只要格式给对。 再多举几个例子: ### 示例 1 无颜色 (略) 有颜色 (略) 文件开头是魔数 `KPS`,后面跟一串小端序 32 位整数(0–999,`0x3E7`)。颜色让你秒看出每个整数高两字节永远是 `00 00`,还能发现从 `0xC` 开始每 `0x18` 字节数字递增的规律。好奇格式的话,[解析代码](https://github.com/simonomi/carbonizer/blob/6c311b6a2801576033cd42a8ba95461cee2ac6d1/Sources/Carbonizer/files/ff1/KPS.swift#L4-L25) 很简单,也有 [wiki 页](https://simonomi.dev/fftechwiki/file-formats/KPS/) 介绍它对应的 [Fossil Fighters](https://en.wikipedia.org/wiki/Fossil_Fighters) 数据。 ### 示例 2 无颜色 (略) 有颜色 (略) 从 `0x14` 开始是一长串递增的 32 位小端序整数,每个都是后面某个 `0x3C` 字节结构的索引。间隔均匀,彩虹渐变直接肉眼可见。 ### 示例 3 无颜色 (略) 有颜色 (略) 数据用 [Huffman 编码](https://en.wikipedia.org/wiki/Huffman_coding) 压缩,兼容 [Nintendo DS BIOS](https://problemkaputt.de/gbatek.htm#biosdecompressionfunctions)。前 `0x20` 字节是 Huffman 树,`0x90` 字节是压缩比特流。两段性质不同,颜色一上,界限立刻分明。

相似文章

深色模式的六个层次(2024)

Hacker News Top

一篇探讨网页设计中深色模式实现的六个层次的文章,范围从基础的meta标签方法到使用CSS的高级配色方案切换技术。

编码模型做得太多了

Hacker News Top

一篇博客文章探讨“过度编辑”问题:编码大语言模型在修复简单错误时改写了过多代码,提出衡量指标与训练方法以鼓励最小化、忠实于原意的编辑。

Google IDE 发展史

Hacker News Top

回顾 Google IDE 的演变历程:从个人选择的碎片化生态,到一款名为 Cider 的云端 IDE 的开发——该 IDE 因其在编辑和代码审查方面的高效性而广受欢迎。