我想编辑英雄联盟的 WAD 文件,但游戏开发人员最近决定向这些文件添加一种哈希值,以检查它们的内容是否有效。不幸的是,目前还没有人能够破解密码。我希望有人至少对它可能是什么有一个想法。
以下是我提取的一些文件(“旧”目录中的文件是旧文件,它们也具有可用于比较的哈希值):https : //drive.google.com/file/d/0B5fV4q6wLg7bTUE2VHc5aW5Ca00
未知的“哈希”值是字节 4 到 87(84 字节长)。我开始查看这个 GitHub 项目,但编写代码的人似乎也不知道该标题的含义。我还发现标题的奇怪之处在于它的长度似乎有所不同(在某些文件中,末尾填充了不同数量的空值)。起初我以为他们可能使用的是 SHA 的变体或其他散列算法,但由于长度不同,我不再确定是否是这种情况,而且我绝对不是散列专业人士。
如果有帮助,您还可以下载“Wooxy”程序,一个英雄联盟文件提取器/编辑器程序,以自己提取、编辑和更新游戏文件。
即使您不知道确切答案,也非常感谢您的帮助!
编辑:这是在尝试加载编辑过的 WAD 文件时出现在游戏日志中的内容:
000036.460| ERROR| ?:0: attempt to call global 'GetHashedGameObjName' (a nil value)
000037.499| ALWAYS| Begin Game Object Update
000037.936| ALWAYS| WadFile mount: DATA/FINAL/Champions/Chogath.wad (FAILED)
000037.937| ALWAYS| Riot::RADS::Reader::SignalSoftRepair: Wrote soft repair file to C:/Riot Games/League of Legends/RADS/solutions/lol_game_client_sln/releases/0.0.1.163/SOFT_REPAIR. This will cause the patcher to repair your installation.
000037.937| ERROR| Assertion failed!
Expression: ALE-18967997
Description: FATAL ERROR - WadFile mount failed: Champions/Chogath.wad
000039.411| ERROR| Crash Occurred
编辑 2:字节 88 和 95(8 字节长)之间似乎还有一个未知值。不过,更改字节似乎不会使游戏崩溃。
编辑 3:我发现标题看起来像是分成 2 部分。字节 4 表示头部的总长度(无00填充)。字节 8 表示第一个“块”的长度。在该字节数之后,有一个02,之后的字节表示第二个“块”的长度。在第二位之后,00直到字节 87 为止。