es3存档文件获取密钥和修改教程,利用BepInEx和ES3SaveHook
Leafsora
2025年07月02日 21:40

找了一圈儿也没在中文互联网找到靠谱的es3存档文件解密和编辑教程,不过好在搜到了国外大神的帖子,虽然照着做还是碰壁了一会儿,但好歹是修改成功了,不得不在此记录一下。

原帖链接就不发了,NSFW的论坛,CN也上不去。原贴主的ID是Henry1887,标题是How to edit/decrypt EasySave 3(.es3) Save Files,应该很容易能搜索到,如果方法失效了可以搜原帖看看有没有更新,至少我上去的时候贴主还在维护。


一、确认你的es3存档是否被加密

首先找到你游戏的存档文件,并确认你的es3存档是否真的被加密了,也就是说记事本打开是不是乱码,如果不是乱码,那直接编辑就完事儿了。

二、寻找存档的密钥(利用BepInEx和ES3SaveHook插件)

如果你的es3存档被密钥加密了,那我们首先要做的就是想办法翻出密钥。这里我先把我成功操作的办法放上来,后面再放我没有成功或没尝试过的办法

这个办法有两个条件:1.你的游戏没有禁止BepInEx运行,2.这是一个PC游戏,不是Android游戏,不满足条件的往后面看

我们需要两个东西:1.BepInEx架构,用以给游戏打mod/安装插件,2.ES3SaveHook插件,原贴主自己做的插件。

1) 下载插件,如果失效了可以自己顺着名字去找。我使用的BepInEx版本是25年6月21日发布的6.0.0 Build738,ES3SaveHook是2025年6月4日发布的,由于两个程序的版本兼容问题可能导致失败,我尝试了几次才成功,可以去找原帖看看有没有新版本。下载链接(腾讯微云):https://share.weiyun.com/fpF3Xqmh

2) 确认你的游戏使用的Unity后端是IL2CPP还是Mono,使用相应版本的BepInEx和ES3SaveHook。确认的方法是看看你的游戏文件内有没有一个叫GameAssembly.dll的文件,有就是IL2CPP,没有就是Mono

3) 将BepInEx解压到你的游戏根目录,然后把ES3SaveHook的dll文件放在BepInEx/plugins文件夹内,现在的结构应该是“游戏根目录/BepInEx/plugins/ES3SaveHookMONO.dll或者ES3SaveHookIL2CPP.dll”

4) 打开你的游戏,随便执行一个存读档操作。打开游戏时可以在同时开启的BepInEx日志窗口看一下ES3SaveHook有没有加载成功,或者报错,我将两个程序都更新到最新版本后才能兼容。

5) 存读档后,现在你应该能直接在游戏根目录下面找到一个decryption.key文件,用记事本打开就能看到存档密钥了。

三、解码并编辑存档

这里我们感谢另一位大神Alex Tusinean制作了存档编辑器EasySave3 Editor,网址:https://es3.tusinean.ro/

1) 如图,把你解出来的密钥放到Password栏目,你也可以点下面的known game passwords按钮下面找到一些作者自己解出来的游戏的存档密钥。

2) 点击Choose File上传你的存档,然后你可以选择直接在线编辑Open editor或是download下来编辑,下载下来的注意编辑完后要重新回到网页上,用Encryption功能再进行加密。

3) 使用在线编辑器的话还是比较直观的,直接翻找所需的项目点开,修改数值就可以了,当然具体哪一项是什么意思,就只能对照名称和游戏内数值来猜了。修改完后右下角save按钮下载下来,就是已经重新加密好的存档文件了。


其他获取密钥的方法

Henry1887还列出了一些其他获取密钥的方法

一、利用ES3KeyExtractor从游戏资产直接获取密钥

同样是Henry1887制作的ES3KeyExtractor,被打包为了search.exe,我同样放在了上方的下载链接中,也可以去github上看看有没有更新,但需要自己打包exe。这里需要用到windows的命令行,Android游戏使用此命令: "search.exe {game apk file}",其他游戏使用此命令: "search.exe {game_Data folder}",稍等片刻(或更久),直到游戏命令行窗口直接显示出密钥。

二、手动提取密钥

这看起来就专业一些了,大概也用不上,分为使用BepInEx和UnityExplorer的控制台;使用DnSpy(只支持Mono);使用BepInEx和UnityExplorer来hook三种办法。

这里简要介绍一下第一种,将BepInEx和插件UnityExplorer如同ES3SaveHook一样安装好,进入游戏,按F7打开UnityExplorer的控制台界面,使用命令

ES3Settings es3Settings = new ES3Settings();

System.IO.File.AppendAllText("decryption.key", es3Settings.encryptionPassword);

现在应该可以在根目录找到decryption.key了

其余两种方法能用的应该都能找到原帖并看懂,找不到原帖的八成也操作不了,我就不放了。


记得备份存档,祝大家成功