吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9717|回复: 21
收起左侧

[Android 原创] 记一次dat+so修改无条件升级

  [复制链接]
什么都只会一点 发表于 2019-10-19 14:00
【示例游戏】
Golf Orbit 下载地址:https://www.lanzouj.com/i6uv2xc


【所需工具】
Il2CppDumper-v4.6.0 下载地址:https://www.lanzouj.com/i6uv5gd
IDA(爱盘里面有下载)


【开始操作】
我们先来进游戏看一下
1.png
可以看到这里有两种货币,分别是GemsGold,我们先简单的记一下
打开安装包查看assets/bin/Data/Managed文件夹,发现里面的dll已被打包成dat文件了,只能使用IL2CppDumper来获取方法名了
提取assets/bin/Data/Managed/Metadata/global-metadata.dat文件和lib/armebi-v7a/libil2cpp.so文件
2.png
打开IL2CppDumper,找到提取文件的安装位置,先打开so文件,在打开dat文件,选完之后,新版的IL2CppDumper会弹出如下情况
3.png
Unity version的获取方法在安装包内assets/bin/Data/unity default resource文件以文本方式打开后可以看到开头有一串数字
4.png
开头的2019.1.0就是当前的Unity version,我们直接输入2019.1.0,按下回车,然后选择2,一直等到Dump完成,如下
5.png
打开IL2CppDumper的安装目录,将dump.cs文件以文本的方式打开
我先尝试搜索Gem和Gold,但是并没有搜到有用的东西,我之前进游戏的时候看到里面的货币主要用来升级,所以我尝试搜索upgrade
直到我找到以下方法名
6.png
GetUpgradePrice意思是获取升级所需的花费,我们记下RVA: 0x407B24地址,将之前的so文件用IDA打开分析
经过漫长的分析,emmmmm,大概半个小时,直到输出窗口出现The initial autoanalysis has been finished.的内容
分析完后按G,输入地址0x407B24跳转
7.png
按照之前的思路,将这里的花费直接返回0,就可以实现无条件升级,详情请看https://www.52pojie.cn/thread-1024836-1-1.html
但是这个游戏不行,它会只升级一次,然后就不能再升级了,所以我尝试另一种方法
选中开头sub_407B24 -> 右键 -> 跳转到操作数外部引用,或者直接按快捷键X
8.png
我们可以看到一个地址加上一个偏移,我直接再dump.cs文件里面搜索对应的地址的方法,只有第一个可能有用
9.png
OnUpgradePurchase意思是购买升级,双击跳转过去看下
10.png
我们需要知道arm汇编调用方法时的返回值会存放进R0寄存器,这里可以看到调用了GetUpgradePrice之后将返回值传给R2
所以我只需要修改返回值,让它传给R2的值为0,就可以实现,购买升级时花费的货币为0
我们点击要修改的代码的行数->右键->快速修补神器->修补,也可以按快捷键Ctrl+Alt+K
11.png
将这里修改成MOV R2,#0,然后点击修补
然后保存so文件,替换掉游戏里面原本的so文件
12.png
进游戏看一下
13.jpg
修改成功,但是会有一个缺陷,就是,每局游戏第一次升级时还是需要货币
还有一个方法没有修改,就当作作业,欢迎各位来自行查找找到这个方法名

免费评分

参与人数 10威望 +1 吾爱币 +18 热心值 +10 收起 理由
奇奇小霸王龙 + 1 + 1 非常赞 总算知道如何查看版本了
qtfreet00 + 1 + 9 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
葡萄demo + 1 + 1 热心回复!
7lsu + 1 谢谢@Thanks!
lookerJ + 1 热心回复!
笙若 + 1 + 1 谢谢@Thanks!
18587205491 + 1 + 1 希望出一些秒杀教程,谢谢
涛之雨 + 3 + 1 也是u3d版本纠结了很久,感谢
我若化成风 + 1 + 1 我很赞同!
534590526 + 1 + 1 太感谢了,一直不知道怎么查看unity版本,恍然大悟

查看全部评分

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

慵懒丶L先森 发表于 2019-10-20 17:04
unity手游以il2cpp打包的方式,逆向修改最难的点就是在dump.cs里找关键词了,太难了,希望有大佬能详细讲解一下在dump.cs文件找关键词的。不知道有没有办法在游戏运行的过程通过某些手段找出关键词。另外,补充一下,如果在dump.cs文件里找不到要修改游戏中数值的关键词,可以等IDA完全加载完so文件后,导入il2cpp工具生成的script.py,可以识别出某些函数名称,减少分析难度
18587205491 发表于 2019-10-19 22:09
楼楼我想请问一下,最近在学手游修改,因为我是小白不知道怎么改,就先从替换人家破解过的文件开始。我这里有个手游是技能无cd的,也是u3d开发的,dll也是被打包成dat文件了,我就把人家破解无cd的so替换到原版游戏,但是还是有cd。但是我又替换了破解的dat文件,还原了原来的so文件,他就变成无cd的了,我想问怎么修改dat文件。(so文件替换了是没用的。)
致yue 发表于 2019-10-19 14:10
SnakeJohn 发表于 2019-10-19 15:00
收藏一下,Mark,感谢
涛之雨 发表于 2019-10-19 15:46
很久前就想搞某个游戏的(好吧我现在忘了。。。)
因为u3d的版本问题。。。过了很久都没有头绪。。
感谢大佬分享
shghe 发表于 2019-10-19 17:11
这个厉害~~~这个厉害~~~
a3860135 发表于 2019-10-19 20:15
为什么不直接添加脚本进去看呢。
18587205491 发表于 2019-10-19 21:25
关注楼楼了,楼楼以后能出一些so和 dat的教程吗?喜欢手游修改
18587205491 发表于 2019-10-19 23:10
楼楼还有我和你一样的修改替换so也是没效果,我这电脑会不会要替换dat才有效果,但是我不会修改,还请楼楼帮我解决一下
 楼主| 什么都只会一点 发表于 2019-10-19 23:55
18587205491 发表于 2019-10-19 22:09
楼楼我想请问一下,最近在学手游修改,因为我是小白不知道怎么改,就先从替换人家破解过的文件开始。我这里 ...

emmm,目前我还没找到什么工具可以直接反编译dat文件,有可能别人将原本的dll文件修改后打包成dat,就能出现你说的这种情况,我这个只是猜测,你可以问下那个修改的人
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 15:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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