大家好!

最近我一直在研究《安迪和萊莉的棺木》的代码。我的朋友正在开发mod并请我来研究游戏的架构以帮助实现一些hook。通过查看代码我发现了什么。

看起来是一个潜在的安全漏洞,涉及经过严重混淆的代码和动态脚本注入。请注意:我还没得出结论,我正在继续研究这个问题并想了解我的理解是否正确。有趣的是,即使在从Steam重新安装游戏,并且没有安装任何mod之后,我也发现了这些特定的文件(\The Coffin of Andy and Leyley\www\js\plugins):

  • NonCombatMenu.js
  • GALV_RollCredits.js
  • YEP_SaveEventLocations.js
  • AudioStreaming.js

我觉得这些代码似乎包含一些分散的Base64数据,并使用 zlib 动态脚本注入DOM内容。在我看来,这不是标准手段来实现简单导航或音频插件。

大家是否有这样的体验?我只是将其视为一种奇怪的保护方法,还是有更深层次的东西?我非常感兴趣地要听听关于您认为的观点和关于游戏架构如何实现它的原因。

请参阅以下代码行:

  • (第355行,noncombatMenu.js):方法 _0xa8d816_(),返回base64的字符串片段。
  • (第376行,noncombatMenu.js):方法 _0x5cea8f_(),包含一个非常大的base64块(约5,000个字符)。
  • (第436行,noncombatMenu.js):方法 _0x3d0cb3_(),包含一个极长的数据块。
  • (第575行,noncombatMenu.js):主注入函数 _(),负责缓冲,Buffer.from解码,zlib.inflateSync解压。
  • (第637行,audiostreaming.js):触发执行的直接激活函数 }_();
  • (混淆映射 0xbb4939)):方法将16进制数字转换为如“zlib”、“inflateSync”和“appendChild”的真实命令。

如果有任何人可以解释我是否误解了任何内容,我将非常感谢。我愿意提供图片或类似信息以便您拥有更多证据。我是新手,因此非常希望通过您那里学到更多内容!