VSCode默认不支持直接读取二进制文件,必须安装Microsoft官方Hex Editor扩展并手动触发:右键→Open with Hex Editor或Cmd+Shift+P→Hex Editor: Reopen as Hex;编辑前需右键切换为Edit模式,保存需手动Ctrl+S,且务必提前备份。

VSCode 默认打不开二进制文件——它会尝试用 UTF-8 解码 .bin、.elf、.png 这类文件,失败后只显示乱码、空白或直接报错。真正能“看到原始字节”,必须靠 Microsoft 官方 Hex Editor 扩展,且它不会自动生效,所有操作都得手动触发。
怎么装对 Hex Editor?认准 Microsoft 官方版本
VSCode 扩展市场里搜 Hex Editor 会出现多个同名插件,但只有作者栏写着 Microsoft Corporation 的那个是官方维护、无广告、不偷偷改编码逻辑的可靠版本。其他叫 Hex Viewer、Binary Viewer 的基本只读、不支持保存,甚至可能把 00 自动转成 0x00 导致写入损坏。
- 按
Cmd+Shift+X(macOS)或Ctrl+Shift+X(Win/Linux)打开扩展面板 - 搜
Hex Editor,确认作者是 Microsoft Corporation,点 Install - 安装完必须 重启 VSCode 或点右下角 “Reload Window”,否则命令面板里搜不到
Hex Editor: Open as Hex
怎么打开二进制文件?别等双击自动跳转
装完插件,VSCode 依然不会自动把 .bin 或 .fw 文件交给 Hex Editor——它仍走默认文本解码流程。你必须显式调用:
- 在资源管理器中右键文件 → 选
Open with Hex Editor - 如果已用文本方式打开了,按
Cmd+Shift+P→ 输入Hex Editor: Reopen as Hex→ 回车 - 想让某类文件(比如所有
.bin)双击就进 Hex 视图,得手动加配置:"files.associations": {"*.bin": "hexeditor"},注意值必须是hexeditor(不是hex或hex-editor),写错就无效
编辑前必须关掉只读模式,否则改了也白改
Hex Editor 默认是只读模式,状态栏显示 [READONLY]。这不是提示“建议别改”,而是真禁用所有输入——双击字节、粘贴、键盘输入全无效。很多人改了半天没反应,就是卡在这一步。
- 在 Hex 编辑区右键 →
Toggle Read-Only Mode - 状态栏变成
Hex Editor (Edit)才算真正可编辑 - 改完一个字节,标题栏右侧会出现 ● 圆点,这是唯一提示“有未保存变更”的视觉信号
- 保存必须按
Cmd+S或Ctrl+S,它不会自动同步;关闭标签页时弹出“是否保存?”千万别手滑点“不保存”
大文件、搜索、保存这些事,都有隐藏坑
Hex Editor 不是万能的:它不支持内存映射式加载,不解析 ELF/PE 头,也不能正则搜索字节序列。很多你以为“应该有”的功能,其实根本没实现。
- 文件 >50MB 会提示
File is too large to open in the hex editor;改设置Hex Editor: Memory Limit(单位 MB)后必须重启才生效 -
Cmd+F只能搜十六进制字节串(如46 49 4C 45),不支持通配符或正则,也搜不到跨行序列 - 保存时如果误点了右下角的
Save with Encoding(比如选了 UTF-8),整个文件会被强制重编码,瞬间损坏——永远只点普通Save - 撤销只支持单步
Cmd+Z,没有多级历史;改错一个字节又保存了,只能靠提前备份的firmware.bin.bak恢复
真正难的从来不是“怎么打开”,而是你改的那个偏移地址、那个字节值,到底对不对。Hex Editor 给你的是裸字节操作权,不是安全网——它不会提醒你正在覆盖 CRC 校验位,也不会阻止你把魔数 7F 45 4C 46 改成 7F 45 4C 00。动手前,先确认位置和原始值;保存前,再核对一遍;改完后,用 xxd -l 16 firmware.bin 快速验证头几个字节是否符合预期。











