可能是我记错了这里实际上是.bundle文件名+hash128+abhashkey
至于catalog的版本号可以使用
大佬提供的代码将请求payload替换为
payload = {
"c": "Index",
"dgs_adult": 1,
"app_vc": {
"os": 1,
"catalog": "",
"app_ver": "",
"app_type": 1
},
}
获取返回的MaxAppVer然后将app_ver替换为获取到的MaxAppVer再请求就能获取到最新的RemoteCatalogName
这游戏有移动版和桌面版
移动版的下载URL前缀是
https://cdn.karen-megahare.com/prod/res/Android/
桌面版是
https://cdn.megahare.com/prod/res/StandaloneWindows64/
请求服务器(版本号 剧情)
https://prod.karen-megahare.com/i.php
加密文件名生成逻辑
v7 = System_String__Format_130277216(
(System_String_o *)StringLiteral_17126,// {0}+{1}+{2}
(Il2CppObject *)assetBundleName, // xxxxx.bundle
v6, // Hash128
(Il2CppObject *)hashKey, // AbHashKey -> ria_gpl_ab
0LL);
至于Hash128怎么算可以使用GitHub Copilot · GitHub
多拷打几下就行了
这里提供几个计算结果
3583767260 -> 2afeda0eee427e1b146a211d05f2f047
1295375149 -> ee7bb02c3b97dd74347850f9aa5a8de6
949661317 -> 7799395f5a27facdf6cb12796e4e9173
不想公开的原因有很多最主要的是有些曾经和我换过文件的人都将这个游戏文件名加密逻辑保密这是我发完分析才知道的
而且这个游戏社区已经养成了一个友好的文件互换环境如果直接贴出代码会直接影响这个社区
我已经说的很详细了只需要解决hash128的计算问题就搞定了如果有人搞定的话也最好不要将代码发出来一个是避免倒勾破坏社区还有避免官方再换加密