吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2288|回复: 20
收起左侧

[Android 原创] 记录逆向某Unity游戏获取资源及代码

  [复制链接]
fjqzlqh 发表于 2024-1-10 15:25
本帖最后由 fjqzlqh 于 2024-1-10 15:38 编辑

准备工具如下
1.frIDA
2.IDA
3.AssetStudioGUI
4.Il2CppDumper
5.dnSpy

拿到游戏的APK后,先解压看一眼资源文件,发现文件名是MD5加密,而AB包则是在前面填充了不固定的字符,并且无法识别unity版本号
QQ图片20240110142301.png
QQ图片20240110142636.png

先用Il2CppDumper导出dll,通过导出的DLL发现并没有常规的Assembly-CSharp.dll,先把导出的DLL丢进dnSpy查看一下函数
查看之后并没有发现有加载asssetbundle相关的函数, 但是发现在AOTMainGame.dll中有一个loadDLL的函数,应该就是加载Assembly-CSharp.dll的地方
QQ图片20240110143852.png

打开IDA跟踪一下代码,但是并没有找到相关解密的代码 (这里卡了我好久,我一直以为加载dll的时候就应该解密了,但是并没有)
后来我用frida hook了看了一下调用过程,发现LoadDLL调用之后会调用上图中StartGame方法,在IDA跳转到该方法后找到了解密相关的函数
QQ图片20240110153049.png

虽然这里调用的是Encrypt,但是我在frida里hook后并没有调用,回到dnSpy查找这个类,并hook它里面的Decrypt函数,发现正常调用
QQ图片20240110153302.png

剩下的事情就容易很多了,写好frida代码,并将dll导出出来
QQ图片20240110153351.png QQ图片20240110153331.png
QQ图片20240110153507.png

把导出的DLL同样丢进dnSpy进行反编译,熟悉的Assembly-CSharp.dll就出来了,并且代码也都是明文的
查找加载assetbundle的地方,最终跟到了getoffset方法,这就是往AB包头部插入字节的偏移量了
QQ图片20240110153201.png

代码都知道了,那就写个解密程序吧...c+v大法
QQ图片20240110153640.png

解密后随便打开一个ab包查看一下,现在已经正常以UnityFS开头了
QQ图片20240110153723.png

最后还有一个问题,那就是ab包的版本号还是0.0.0,这使得AssetStudioGUI无法识别
QQ图片20240110153821.png

只能在github下载AssetStudio源码自己魔改,找到CheckStrippedVersion直接把里面的值写死   (暴力美学)
QQ图片20240110153859.png

成功加载, lua代码,资源,还有前面的c#代码都被我们解出来了~~
QQ图片20240110153947.png

声明一下:破解的资源请别用于商业用途~
欢迎大家留言讨论~~谢谢

免费评分

参与人数 8威望 +1 吾爱币 +28 热心值 +8 收起 理由
woofhat + 1 + 1 谢谢@Thanks!
junjia215 + 1 + 1 谢谢@Thanks!
正己 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
地球守护者 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
kuiur0810 + 1 + 1 我很赞同!
debug_cat + 2 + 1 谢谢@Thanks!
xinbao339 + 1 + 1 我很赞同!
Quincy379 + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| fjqzlqh 发表于 2024-1-13 21:49
本帖最后由 fjqzlqh 于 2024-1-13 21:55 编辑
阿清 发表于 2024-1-13 00:52
https://www.mlbb11.com/ 这个 这热血好几个版本 你那个版本资源好像也有点加密 大佬能不能也出一期学习 ...

你这个也不难,就是global-metadata.data用了异或加密了,资源包(也就是.pak)也是用的异或加密
这个是解密global-metadata.data
image.png
这是解密资源的,你如果只是要资源,直接用下面这个代码跑一下(路径自己替换一下),然后把解密过的资源丢进AssetStudio就行
image.png
woofhat 发表于 2024-3-19 10:53
看起来不是很难,但是自己做就不是那么回事。
我随便找了个unity 的游戏想尝试一下解包。
结果根本就没有发现什么LoadAssetbundle或者类似的函数,完全不知道如何下手
wasm2023 发表于 2024-1-11 11:44
zesi111 发表于 2024-1-11 13:11
膜拜神贴,后面的请保持队形~
xinbao339 发表于 2024-1-11 17:19
膜拜大神
阿清 发表于 2024-1-11 22:19
你可以玩下 那个热血江湖手游 那个才叫难阿 后缀是.pak
airwolf83 发表于 2024-1-12 13:42
虽然看不懂,但觉得很牛,毕竟Unity的游戏都很好玩
 楼主| fjqzlqh 发表于 2024-1-12 13:52
阿清 发表于 2024-1-11 22:19
你可以玩下 那个热血江湖手游 那个才叫难阿 后缀是.pak

热血江湖手游的资源并没有加密
阿清 发表于 2024-1-12 17:10
fjqzlqh 发表于 2024-1-12 13:52
热血江湖手游的资源并没有加密

不应该 这游戏我看过很多次了 是官网的 不是杂牌的 assets\ android0.zip里面 也有 assets\platform_android 也有
 楼主| fjqzlqh 发表于 2024-1-12 18:46
阿清 发表于 2024-1-12 17:10
不应该 这游戏我看过很多次了 是官网的 不是杂牌的 assets\ android0.zip里面 也有 assets\platform_andr ...

http://r.longtugame.com/这个地址下的
阿清 发表于 2024-1-13 00:52
fjqzlqh 发表于 2024-1-12 18:46
http://r.longtugame.com/这个地址下的

https://www.mlbb11.com/ 这个 这热血好几个版本 你那个版本资源好像也有点加密 大佬能不能也出一期学习学习 想找下地图的二进制
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-27 17:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表