VSCode默认不支持直接读取二进制文件,需手动启用十六进制视图:安装Microsoft官方Hex Editor扩展或使用1.84+内置只读预览,二者均不可自动触发,且编辑前须备份、修改后须手动保存。

VSCode 默认不支持直接读取二进制文件,必须显式启用十六进制视图
VSCode 本质是个文本编辑器,打开 .bin、.exe、.png 等文件时,它会尝试用 UTF-8 解码——失败后就显示乱码或空白,甚至弹出“文件过大”警告。这不是 bug,是设计使然:它不会自动跳转到字节级视图。
真正能“读取”二进制内容(即看到原始字节),靠的是两种方式:一是装 Hex Editor 扩展(推荐),二是用 VSCode 1.84+ 内置的只读二进制预览(轻量但不可编辑)。两者都要求你**手动触发**,没有“双击即开”的默认行为。
- 右键文件 → Open with Hex Editor(需先装扩展)
- 已打开文件 →
Cmd+Shift+P→ 输入Hex Editor: Reopen as Hex - 大文件(如 >64KB)被拦截时 → 点击提示里的
Open as Binary按钮(仅内置模式,只读)
装哪个 Hex Editor?认准 Microsoft 官方版本
VSCode 扩展市场里搜 Hex Editor 会出现多个同名插件,但只有作者显示为 Microsoft Corporation 的那个是官方维护、持续更新、无广告、不改文件关联的可靠版本。其他第三方插件可能渲染慢、不支持保存、甚至偷偷注入编码转换逻辑,导致写入后文件损坏。
- 安装路径:
Cmd+Shift+X→ 搜索Hex Editor→ 确认作者栏是Microsoft→ 点Install - 装完必须重启 VSCode 或点击
Reload Window,否则命令面板里搜不到Hex Editor相关命令 - 别信“Hex Viewer”“Binary Viewer”之类名字近似的插件——它们大多只读、不支持编辑、不更新
编辑前务必备份,修改后必须手动保存
Hex Editor 插件所有编辑操作都作用于内存缓冲区,**关闭文件或切换标签页时不会自动保存**。如果你改了几个字节又点了 ×,弹出“是否保存?”时手滑点“不保存”,就彻底丢弃了全部修改;更危险的是——点“保存”时它会直接覆写原文件,没有任何确认弹窗或 .backup 副本。
- 实操建议:打开前先复制一份
firmware.bin.bak,尤其处理固件、驱动、PE/ELF 文件时 - 改完一个字节,窗口标题栏右侧会出现 ● 圆点标记,这是唯一视觉提示“有未保存变更”
- 保存快捷键是
Cmd+S(macOS)或Ctrl+S(Windows/Linux),不是自动同步 - 撤销只支持单步
Cmd+Z,不支持多级历史;误操作后只能靠备份恢复
查找、跳转、对齐这些事,得知道它只认字节偏移
Hex Editor 的 Cmd+F 查找默认是“按字符串搜”,但二进制分析中你真正需要的是“按字节序列搜”,比如找 PNG 文件头 89 50 4E 47。这时候必须手动切换成十六进制搜索模式;同样,Cmd+G 跳转输入的是十六进制地址(如 000001A0),不是行号。
- 查找字节序列:
Cmd+F→ 点击查找框右侧的⋯→ 勾选Match Whole Word和Use Regular Expression不起作用,要选Hex模式(图标是0x)→ 输入89504E47 - 跳转到偏移:
Cmd+G→ 输入1A0(自动补零)→ 回车,光标跳到第 416 字节位置 - 每行显示字节数影响对齐:右键编辑区 →
Change Bytes Per Row→ 设为16是常规选择,设为32更适合看结构体字段排布
最常被忽略的一点:你看到的 ASCII 栏只是辅助参考,不可打印字符一律显示为 .,但它不影响十六进制区的编辑——哪怕右边全是点,左边的字节照样能双击修改。别因为右边看不懂就怀疑左边没加载成功。










