之前有段时间,女朋友喜欢玩一个单机游戏。我嫌弃她浪费时间玩单机,就随口说帮她破解了吧,结果因为那段时间要离职,以及乱七八糟各种事情一直没心情搞破解。今天正好进新公司第一天,搞好了电脑系统环境之后。leader 让我自己分配时间(官方指定摸鱼),那就用一个下午搞一下这个游戏吧
目标游戏包
https://share.weiyun.com/8oQbIEG0
这是一个没有接支付的休闲游戏,研发人员主要收入是广告,驱使玩家看广告获取更多的游戏内物资。
不过也有预留支付通道,里面就有 钻石 这种游戏内氪金货币。同时也有游戏内的基础资源;
钱,石头,木头,水泥。
那我们的破解目标就是全资源破解。
简单分析
用 apktool 解开这个包,然后直接回编译,发现没有签名校验。那这个时候就有心理准备了,这个包难度不会很大。
打开解包后的文件夹进入 assets 目录下,发现有一个 main.js 的文件,点进去看发现加载了js 文件,路径是相对路径下 src/project.860dc.js
var bundledScript = settings.debug ? 'src/project.dev.js' : 'src/project.860dc.js';
那就进入到这个路径 assets/src/ 发现里面的 js 文件都是加密过的 jsc ,到此分析告一段落。进一步的分析需要解密 jsc 文件,根据 main.js 的逻辑不难猜测游戏核心逻辑都在 project.860dc.js 中,我们只需要解密后修改就行。
处理 jsc 解密
之前没接触过 js 相关的加解密操作,大概过了一遍 cocos2djs 的加密逻辑。还是一种基于 key 的加密逻辑,key一般隐藏 在 so 中,加载 js 的时候会 使用 key 把 jsc 还原成 js 使用。
由于我才疏学浅,这里就借用大佬写好的一个工具来解密 jsc
首先咱们自己把 jsc 的加密 key 找出来
把 lib 丢进 010 editor ,ctrl+f 调整搜索类型为 字符串,搜索 Cocos Game,
后面跟着的字符串就是解密 的密钥了,现在拿到密钥,尝试解密 jsc
我用了一个大佬写的库
https://github.com/luckyaibin/cocoscreatorjscdecrypt
改一下 crack.js 里面的 解密路径 以及 key 信息, 然后调用解密命令
node crake.js d
成功获取到了 解密后的 js 文件。
修改对应的资源参数
因为游戏的默认钻石 数量是 30,所以在 project.js 中 ,搜索 = 30
到了搜索结果位置,很明显变量名称都没加密,那就没悬念了,根据需求疯狂改就行。
cash 对应的是 钱
gem 对应的 钻石
改的时候注意要用 16进制就行
其他的 资源 木头 水泥 石头,都是任务获得的,没有初始化的地方,直接找到 任务完成后的奖励回调,把任务奖励翻倍就行
这三个材料 很明显是 对应的 水泥 木头 石头,直接 写成固定数字就行或者 翻一百倍
加密回编译
node crake.js e
把 解密后被修改过的 js 代码 重新加密回去 为 jsc ,不然直接回编译会报错。
修改后效果
破解总共耗时大概 20 分钟
到这里 整个游戏的游戏内资源相关的破解就完成了,难度很低,因为这个游戏基本没有做任何防护。2022年了这种裸奔的游戏还是比较少见的,接下来会搞几个有难度的
你好,链接失效了,还能分享下目标游戏包吗?
https://share.weiyun.com/8oQbIEG0 更新了链接,或者自己找一下游戏包也行,游戏名字叫 外婆的小农园
我有个游戏需要逆向。高额报酬,怎么联系你 252841906 这个是我qq