mac终端需用专用工具查看二进制文件:vscode hex editor最直观可编辑;xxd命令适合快速转储;file命令识别文件类型;od命令支持底层多进制解析与结构提取。

Mac终端无法直接用cat或less读取二进制文件的可理解内容,强行查看只会输出乱码甚至卡死终端;必须借助专用工具将字节以十六进制+ASCII双栏形式结构化呈现。
用Hex Editor扩展在VSCode中查看
这是最直观、可编辑、支持搜索的方案,适合需要分析或修改二进制内容的场景。
第一步:打开VSCode,按下 Cmd + Shift + P 调出命令面板。
第二步:输入 Extensions: Show Built-in Extensions 并回车,在列表中搜索“Hex Editor”,确认状态为“已启用”;若显示禁用,请点击右侧齿轮图标选择“启用”。【旧版VSCode可能未预装该功能,必须手动启用】
第三步:在资源管理器中右键目标二进制文件(如a.out、test.bin、某PNG文件),选择“Open with Hex Editor”。若右键菜单无此选项,可先用默认方式打开,再执行命令面板中的“Hex Editor: Reopen as Hex”。
第四步:进入后,左侧为十六进制字节区(每行16字节),右侧为对应ASCII/UTF-8字符映射;滚动时顶部地址栏实时显示当前偏移(如000000A0);按 Cmd + F 可搜索十六进制序列(例如输入 FF D8 FF 查找JPEG头)。
用xxd命令在终端中快速转储
无需启动GUI,适合脚本化查看或快速检查文件头尾。xxd是macOS自带命令,输出紧凑,但不可编辑。
方法一:基础转储
在终端中运行:xxd /path/to/binary。它会逐行显示偏移地址、十六进制数据块和右侧ASCII表示,每行默认16字节。
方法二:限制行数便于聚焦
加参数 -l 64 仅显示前64字节:xxd -l 64 firmware.bin。这对查看Mach-O头、ELF魔数或PNG签名(89 50 4E 47)非常高效。
方法三:反向转换(慎用)xxd -r 可将十六进制文本还原为二进制,但仅用于可信来源的dump文件;误用会导致不可逆损坏。
用file命令识别格式并验证结构
这不是“查看内容”,而是判断二进制文件类型与完整性,避免用错工具——比如把PDF当纯数据dump,或对已损坏文件徒劳分析。
运行:file -i /path/to/unknown。-i 参数强制输出MIME类型,比默认输出更明确。若返回 application/x-mach-binary; charset=binary,说明是macOS原生可执行文件;若为 application/zip; charset=binary,则可能是ZIP封装(如.ipa、.jar),此时应改用unzip -l查看内部结构。
注意:如果file输出含 data 且无具体格式,大概率是加密、压缩或自定义二进制协议,需结合上下文判断是否应使用专用解析器。
用od命令做底层字节解析
od(octal dump)比xxd更古老、更底层,支持多种进制和数据类型解析,适合调试嵌入式固件或硬件通信帧。
① 查看十六进制+ASCII混合视图:od -Ax -t x1z filename。
其中 -Ax 以十六进制显示地址,-t x1 每字节用两位十六进制,-z 在右侧附加ASCII打印(不可见字符显示为.)。
② 提取特定偏移处的4字节整数(大端):od -j 0x100 -N 4 -t x4 filename。-j跳过前0x100字节,-N只读4字节,-t x4按32位十六进制整数解释——这在解析Mach-O load commands或PE header时很关键。
③ 如果输出全是000000或大量重复值,说明文件可能为空、被截断或权限不足;请先运行 ls -l filename 确认大小与读取权限。











