你有没有遇到过这种场景:拿到一个未知的二进制文件,想快速判断它是什么架构、有没有加壳、内容分布是否可疑,但手边没有趁手的工具?要么把文件上传到在线分析平台,担心泄露;要么装一堆逆向环境,折腾半天。ISA Workbench 这个开源项目把这件事搬进了浏览器——直接把文件拖进网页,本地完成熵分析、指令集分类、十六进制查看,全程不上传。
先解释几个关键词。熵(entropy)是信息论里的概念,用来衡量字节的混乱程度。一个正常编译的程序,指令区域熵值通常不高,而加密或压缩过的数据熵值会接近最大值(8 位/字节)。所以看熵曲线能快速识别出哪里藏了加密数据、哪里是代码。ISA(Instruction Set Architecture,指令集架构)就是 CPU 能理解的那套指令编码规范,比如 x86、ARM、RISC-V 就是不同的 ISA。二进制分类就是根据字节模式猜这个文件是给哪种 CPU 用的。
这个工具的核心思路很直白:文件在浏览器本地读取,分析引擎(用的是类似 JavaScript 实现的轻量级识别器)计算每个区块的熵值,并对比已知 ISA 的统计特征给出置信度。界面里能看到熵分布图,支持 Hilbert 曲线和线性两种可视化——Hilbert 曲线把一维字节流映射成二维平面,能直观看出局部规律;线性模式则按文件偏移展示。你还可以按字节类型着色:控制字符、ASCII 可打印字符、0x80–0xfe 范围、0xff,不同颜色块能快速区分文本区、代码区和填充区。
最让我觉得实用的是它的批处理能力。拖入多个文件后,表格里会列出每个文件的 ISA 预测、位数(32/64)、字节序(小端/大端)、文件格式、置信度、大小、平均熵和分析耗时。你可以按置信度排序,筛掉那些识别结果存疑的文件。所有分析都在本地完成,意味着敏感固件、私有 SDK 的二进制都可以安全地过一遍。
再细看十六进制视图:除了常规的 hex+ASCII,它还支持 latin-1、cp437(DOS 字符集)、EBCDIC(IBM 大型机用的编码)、UTF-16LE/BE。这对处理老式系统或嵌入式固件特别有用——比如从 ROM 里导出的二进制,常见 ASCII 视角看着全是乱码,切到 EBCDIC 可能立刻露出字符串。导航操作也花了心思:按住鼠标拖拽平移、滚轮缩放、Alt+方向键回退历史,还有专门的“缩放到这里”和“适应整个文件”按钮,长偏移定位不再靠滚动条猛拉。
这个工具适合谁?两类人。一类是安全研究和逆向工程师,拿它做第一道探查,快速判断一个二进制是否加壳、是否包含可疑的高熵区块(比如内嵌的加密 payload)。另一类是嵌入式开发,检查编译产物到底被编成了 ARM 还是 Thumb,或者验证字节序是否符合预期。它不替代 Ghidra、IDA 这类专业逆向工具,但作为“进门前的安检仪”非常顺手。
需要注意的坑:分类置信度不是 100%,尤其对短文件或压缩过的数据,可能张冠李戴;熵可视化对超大文件(几百 MB)虽能跑,但浏览器内存吃紧,建议先切片再看。另外它是纯前端项目,分析逻辑全在浏览器里,如果你同时开着很多标签页,性能会被挤占。整体上,这个工具把“快速看两眼二进制”的成本降到了零,值得放进你的在线工具箱。
内容与图片版权归原作者所有 · 原文: https://zr.ax/