第1部分:击败不值得的人
Unworthy是一款类似于灵魂的2D Metroidvania游戏,具有非常酷的灰度最小艺术风格。 它也恰好是恶魔般的困难。

几次死于第一任老板之后,我决定检查是否可以修改我的保存文件,并给我可怜的角色带来一点好处。
- 《 Coffee Talk Devlog#2:使涂鸦栩栩如生》
- “来自开发者”:RichOfPickles保留球员背后的心理
- 如何在Unity中使用纹理数组
- 这是让YouTuber和流媒体实际玩您的独立游戏的方法…
- 情绪力学
(我将在下面说明如何修改您的保存文件,请记住,这仅出于教育目的)
找到游戏的保存文件后,引起我注意的第一个文件是“ character_stats.ini” 。

让我们以老式的方式打开它。

我敢打赌你们中的一些人已经走了“ 嘿,我知道这是什么! ”,但让我们先慢慢来吧😉
乍看之下看起来并不多,但是我们可以开始注意到一些有趣的事情。
它绝对是文本,并使用字符(拉丁)和数字! 而且字符集似乎受到限制。 它比ascii更受限制,但比十六进制更紧凑! 其次,您可以区分模式(例如,到处都是wMDA )。 第三,它以==结尾,通常用作填充以匹配某个X长度的倍数…
很容易看出它是Base64编码的。 基于重复模式,它可能是基于json或基于xml的。
让我们打开浏览器的检查器控制台,然后尝试使用atob对其进行解密。

我们可以看到有一个二进制标头,它可能特定于游戏引擎和所使用的保存游戏库,或者可能包含安装实例信息或有关游戏保存版本的信息等。它也可能是一个哈希(稍后再讨论)。 但是现在,我们关心下面的多汁json数据!
我将“ max_hp”:84.000000修改为“ max_hp”:666.000000,然后使用btoa将其转换回Base64 。 然后将其保存回去。

所以……我们只是修改了已保存的游戏,然后一直将自己的方式推向第二位老板,对我们不值得的胜利感到不满意! 优秀!
那么……开发人员可以采取什么措施来防止像我这样的人作弊?
更新 :Unworthy的最新版本已将系统更改为基于加密的系统,真是太棒了! 我不会解释如何破解它(因为我自己还没有做过,所以即使我愿意,我也无法做到,但是有一些线索可以帮助那些好奇的灵魂)