必须安装microsoft官方hex editor扩展并重载窗口,右键无选项属正常设计;确认作者为microsoft corporation、图标为蓝色六边形;启用编辑需点击状态栏readonly切换模式,保存直写磁盘无提示。

VSCode 本身不支持十六进制查看二进制文件,必须装 Microsoft 官方 Hex Editor 扩展,且装完不会自动生效——右键没选项、命令面板搜不到、双击还是乱码,都不是 bug,是设计如此。
怎么确认装的是真 Hex Editor?
扩展市场搜 Hex Editor 会出来一堆同名插件,但只有作者栏写着 Microsoft Corporation 的那个才可靠。其他叫 Hex Viewer、Binary Preview、hexdump for VSCode 的,基本只读、不响应 Ctrl+S、不支持 Ctrl+G 跳转偏移,误用等于白忙活。
- 打开扩展面板(
Ctrl+Shift+X或Cmd+Shift+X),搜Hex Editor - 认准图标是蓝色六边形、作者是 Microsoft Corporation
- 安装后必须点右下角弹出的 Reload Window,或手动执行
Developer: Reload Window - 装错插件后,改完字节按
Ctrl+S,窗口标题有 ● 圆点,但磁盘上文件内容完全不变
为什么右键没 “Open with Hex Editor”?
这不是插件失效,是 VSCode 故意不自动注册右键菜单项——它防的就是你双击 bootloader.bin 就直接可编辑。一旦文件被缓存为文本模式(比如之前报错时点了“以文本方式打开”),右键菜单就彻底消失。
- 唯一稳路径:
Ctrl+Shift+P→ 输入Hex Editor: Reopen as Hex(对已打开文件) - 或
Hex Editor: Open File(跳出系统选择器,适合未打开的文件) - 拖拽文件到编辑区失败?弹出“无法打开”提示时,点提示框里的
Open with下拉菜单再选Hex Editor -
files.associations配置只影响“双击”行为,且值必须严格为"hexeditor"(不是"hex"、"binary")
Hex Editor 默认只读,改了也白改
状态栏右下角显示 Readonly 不是提示,是硬锁:双击字节、粘贴、键盘输入全无效。点它切换成 Edit 模式前,所有操作都是内存假动作。
- 切换后才能真正保存:
Ctrl+S直写磁盘,无确认弹窗、无自动备份 - 切错模式最典型现象:改完字节按
Ctrl+S,没报错也没反应,文件内容纹丝不动 - 固件/PE/ELF 分析时,第一件事就是右键编辑区空白处 →
Toggle Read-Only Mode - 务必提前
cp firmware.bin firmware.bin.bak——Hex Editor没跨会话撤销,关掉标签页历史就丢
大文件卡死或打不开?别硬扛,先看配置和权限
VSCode 内置的 Open as Binary 只读预览(1.84+)仅限前 64KB,无搜索、无跳转、不能改字节;而 Hex Editor 加载大文件(>10MB)容易卡顿甚至崩溃,问题常不在插件本身。
- 编辑前先用终端跑
xxd -l 512 filename.bin确认目标偏移和原始值,避免在 VSCode 里反复试错 - 想让
.exe、.dll这类被安全策略拦截的类型也能打开,得加白名单:"hexEditor.supportedLanguages": ["*.bin", "*.img"],慎用["*"]—— 它会让所有文件(包括.js)都走 hex 视图,可能拖慢启动 - 文件系统权限是只读(比如固件在
/usr/lib/firmware下)?VSCode 不报错,但保存静默失败;先chmod +w或复制到用户目录再改 - 右下角编码按钮(如
UTF-8)千万别点Save with Encoding——那是文本重编码逻辑,一存就把二进制当字符串转码,直接废掉
最易忽略的一点:所有编辑直写磁盘,没有中间校验,不提示魔数变化,不警告 PE 头被改坏。一个回车就能把 00 改成 FF,改完就得立刻验证,不能靠“好像没问题”来赌。











