
hexcymatix 是一个探索性研究项目,大致设想为一种
二进制逆向工程工具,用于从二进制文件中重复的字节模式中
提取结构信息。
这个构想从未真正成为可用的工具,但它仍然能从日常数据中 产生一些令人着迷的自对称性可视化表现。
有时候在逆向工程中,你会拥有某份数据的一个样本——一张表、一个 压缩数据块、一个协议载荷——并希望在文件的其他位置找到类似的 数据,而此时还无法编写出描述它的规则或解析器。你想要的 是无需规格说明的相似性。
hexcymatix 假定重复的字节串意味着结构或关联,
即使我们不知道那种结构是什么。通过将重复可视化,我们
无需确切知道自己在寻找什么,就能浮现出相关的数据。
例如,下面的《思想录》(Pensées)片段包含几个自我重复的序列
(' incapable of '、' which he '、'ing either ')——hexcymatix 将文件铺展
成两行,并连接所有长度至少为 8 字节的重复字节序列:

浮现出来的连接随后暗示了数据中潜在的结构与关联。
对日常二进制文件重复这一过程,就会开始自动提取出 意料之外的自相似性、连接和结构。例如,以下是标准 Windows 安装中的错误查找可执行文件:

这一过程中最重要的部分是在片段连接之间添加弧线, 让输出看起来更酷:

在完全偏离初衷之后,我们可以尝试对数据进行 各种不同的可视化表现。例如,将同样的文件和连接渲染到 圆周上,效果如下:

python hexcymatix.py [options] file [file ...]
| 选项 | 说明 |
|---|---|
--circular | 圆形布局:字节偏移映射为环上的角度(默认) |
--linear | 平行条布局:两条水平条带,由交叉四边形连接 |
--top N [N ...] | 渲染前仅保留 N 个最长的片段;可传入多个值,每个截断值渲染一张图像 |
--no-arcs | 仅绘制弦,跳过弧线(速度大大提升,视觉噪声更少) |
--resolution RES | 输出分辨率,格式为 WxH 或预设值:480p、720p、1080p、1440p、4k、uwfhd(2560x1080)、suwfhd(3840x1080)(默认:1080p) |
--ultra | --resolution 4000x4000 的简写 |
--circle-fill F | 圆形占画布直径的比例(默认:0.25;超宽预设为 0.50) |
--jpg | 同时为每张 PNG 输出一张 80% 质量的 JPEG |
--output-dir DIR | 输出文件目录(默认:output) |
# 可执行文件的圆形可视化
python hexcymatix.py --circular guidgen.exe
# 线性可视化,仅保留前 500 个片段
python hexcymatix.py --linear --top 500 guidgen.exe
# 批量处理,4K 输出
python hexcymatix.py --circular --resolution 4k *.exe





















