关于最近解包游戏导致硬盘不够这档事
就单纯解包玩玩,没有一点关于游戏引擎的了解。
UE4
最先解包的是UE4游戏,刚好有Wuthering Waves,就想着提取模型试试。首先UE4游戏用Umodel解包,对于某些游戏fmodel有专门版本,鸣潮也是,解包目录在pc端是Wuthering Waves\Wuthering Waves Game\Client\Content\Paks,底下的.pak文件就是资源包,导入时会提示需要AES密钥,很多UE4游戏的密钥都可以在这个网站找到。鸣潮和尘白的密钥在里面都找到了,如果没有,在网站的How to dump exe for protected games栏目下是自提取密钥方法,工具链接需要登录才能看到,首先是工具AES_finder,但对Wuthering Waves.exe直接使用无效,因为exe文件开了保护,甚至开着x64dbg连游戏都无法启动,文中的另一个工具Process Hacker可以用,管理员启动后可以dump出exe文件数据,将数据修改成exe后缀,与AES_finder同目录时运行AES_finder稍等数分钟会出现key.txt,里面写着0x……便是提取成功,至少试过鸣潮和尘白都能用这种方法提取。
Unity
Unity开发的游戏才是真的多,绝大多数热门手游都是unity,而解unity游戏需要用到AssetStudio,这是最早开发者,项目已经不更新了,对于新的unity版本和unityCN(中国unity加密)无法解包,这时候用到Razmoth佬的CNStudio,
CNStudio的Options栏目下会有Specify UnityCN key,里面有不少游戏的key,战双帕弥什、恋与深空、花亦山心之月,只要点名字左侧空白处两下就是选择此游戏的key,接下来只要导入包就行。
解包后的导出选项也有讲究,Options里面最后一栏Export options就是导出设置,修改下Group exported assets by就行,默认是type name按照type进行分类,同type放入同个文件夹,提取cg方便,但提取模型时就不是很好,动作模型需要将贴图、骨骼文件放在一起才会生效,改成container path就能按照源目录导出,将文件按照源目录分类。
就所解包过的游戏来看,spine文件(就是那些动作模型)一般分为json结构和skel结构:
1 | json |
两种形式文件都可以用Skeleton Viewer查看,但一般名字都不会直接如此,atlas可能变成atlas.prefab,json则是prefab,扔进十六进制看看是json还是skel,带有非常多括号的就是json形式,但不管哪种格式都有spine的版本,必须用对应版本的工具才能打开,这也是为什么不推荐Spine Pro的原因,目前广泛流通(破解)的就是Spine Pro 3.8.75,而且还不能切换版本;导入时只需要选择xxxxx.json或xxxxx.skel即可,工具会自动导入同目录贴图。


还有重命名问题,写个python
1 | import os |
walk函数真好用,完全不用自己考虑递归,函数内会自动向下递归,x表示当前目录,y表示下面的子目录,z则是当前目录的文件。
安卓抓包
有些游戏角色好感度上去,解锁剧情才会下载所需要的包,这时候可以通过抓包看看里面有哪些数据,约等于直接通过。
首先尝试的就是Fiddler工具,但是模拟器的浏览器走了代理,部分软件没走,因此没抓到软件的流量包,游戏还一直卡在登录界面,验证都过不去;
换成Reqable就完美解决了,这软件证书安装还跟Fiddler不同,直接是.0这种文件而不是.cer,只要能将证书push进去就行,某种意义上说只需要执行第四条指令即可,因为逍遥模拟器里面没有avbctl,第二条指令就直接无法执行,这影响到第三条remount,没有经过remount会提示Read-only file system;但实际上只要改下模拟器设置就行,把共享系统盘改成独立系统盘就能remount。

模拟器端与电脑端互联后可以在电脑上抓包,具体操作工具里面讲得很清楚,先下个剧情试试,会发现在上剧情前去访问了一个文件Android.size.json,放浏览器上下载后打开就是资源目录,包括后面没解锁的剧情都在里面,这游戏是这文件,但其他游戏不一定,譬如DMM オトギフロンティア 资源清单是AdditionalAssets.csv。接下来拿取资源可以参考这里。

杂谈
忘川风华录资源包加密了没有解包成功,只在xentax上看到篇忘川风华录 encryption,改了头删了0x00还是打开不了,估计没明白文章想法。游戏global-metadata.dat加密过,内存也隐藏了文件头,对着Il2cpp逆向一通瞎闹啥都没找到。