hex editor插件可用但需绕过三大陷阱:不自动接管文件、不处理系统锁、不支持增删字节;改错一字节可能导致存档失效。

直接修改游戏存档这类二进制文件,Hex Editor插件能用,但必须绕过三个默认陷阱:它不自动接管文件、不处理系统锁、也不支持增删字节——改错一个字节就可能让存档无法加载。
为什么右键“Open With Hex Editor”没反应
VSCode 安装完 Hex Editor 插件后,不会自动把 .sav、.dat 或无扩展名的存档文件识别为二进制目标。你看到的“乱码”其实是 VSCode 在用 UTF-8 强行解码原始字节,不是插件失效。
- 先关掉自动编码猜测:打开设置(
Ctrl+,),搜files.autoGuessEncoding,设为false - 再手动触发:在资源管理器中右键存档文件 →
Open With→ 选Hex Editor;如果菜单里没有,按Ctrl+Shift+P输入Hex Editor: Open as Hex - 想以后双击就进十六进制视图?在
settings.json加一行:"*.sav": "hexeditor"(注意值必须是hexeditor,不是hex或hex-editor)
保存失败常见原因和应对方式
游戏存档常被进程锁定或设为只读,Hex Editor 会静默失败——界面不报错,但 Ctrl+S 后文件内容没变。
- 检查右下角状态栏是否显示
Readonly:是的话说明权限或锁住了,别硬点保存 - 关掉正在运行的游戏客户端(尤其 UWP 或 Steam Overlay 进程可能偷偷持有句柄)
- Windows 下右键存档 → 属性 → 取消勾选
Read-only;macOS/Linux 下用chmod +w yoursave.sav - 实在不行,先
File → Save As另存为新文件,再手动替换原存档(注意备份!)
编辑时必须注意的硬限制
Hex Editor 不是 HxD 或 010 Editor,它只做原位覆盖(overwrite),所有操作都基于固定长度。
- 不能插入或删除字节:比如把
00改成00 00,编辑器会截断或跳过第二字节 - 不支持撤销历史:关闭文件再打开,就再也回不去了;Ctrl+Z 只管当前会话内的几步操作
- 搜索要切对模式:Ctrl+F 后点右上角图标,选
Match Hex才能搜FF 00 A5这类字节序列,否则搜的是 ASCII 字符串 - 大存档(>100MB)容易卡死:比如《赛博朋克2077》的云存档镜像,建议先用命令行定位:
xxd -l 512 yoursave.sav | grep -A5 -B5 "SAVE",再跳到对应偏移编辑
真正难的不是找到那个版本号或金币数值的偏移位置,而是确认这个字段在不同存档版本间是否对齐、是否受 CRC 校验保护——Hex Editor 不帮你算校验和,改完记得用 certutil -hashfile yoursave.sav SHA256(Windows)或 shasum -a 256 yoursave.sav(macOS/Linux)比对前后哈希,避免白忙一场。











