你的十六进制编辑器应该给字节上色
摘要
一篇博客文章主张,十六进制编辑器应为字节着色,以便让二进制数据中的模式更易被察觉和分析。
暂无内容
查看缓存全文
缓存时间: 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)
一篇探讨网页设计中深色模式实现的六个层次的文章,范围从基础的meta标签方法到使用CSS的高级配色方案切换技术。
Show HN 提交量翻三倍,如今大多是“看”氛围编程产物
一篇博文量化了 Show HN 提交的激增,并识别出常见的 AI 生成设计套路:Inter 字体、紫色渐变和玻璃拟态,显示自氛围编程工具流行以来数量已增至 3 倍。
编码模型做得太多了
一篇博客文章探讨“过度编辑”问题:编码大语言模型在修复简单错误时改写了过多代码,提出衡量指标与训练方法以鼓励最小化、忠实于原意的编辑。
@om_patel5: 这位大佬开发了一款工具,可以实时展示 Claude Code 编辑你代码库的过程 现在当 Claude Code 工作时你…
一位开发者创建了一个开源工具,可实时可视化 Claude Code 对文件所做的更改,让用户能够监控编辑过程的实时动态。
Google IDE 发展史
回顾 Google IDE 的演变历程:从个人选择的碎片化生态,到一款名为 Cider 的云端 IDE 的开发——该 IDE 因其在编辑和代码审查方面的高效性而广受欢迎。