mscsky 发表于 2020-7-27 20:50

il2cpp游戏修改:从偷学武功到入门

手机游戏里一直喜欢气球塔防,前2年刚出的气球塔防6,由于太肝后来没玩了,最近看到更新了,就下载下来玩玩,之前由于太肝就想自己破解试试,因为是il2cpp的游戏,用p大的Il2CppDumper导出了cs文件,但是打开搜了钱相关的关键字再用IDA打开libilcpp.so文件(分析了几个小时!,按g跳到地址就蒙了,完全看不懂汇编啊,也完全不会用ida啊!网上的教程也不详细,https://www.52pojie.cn/thread-818645-1-1.html这篇教程看都看不懂,遂放弃。
时到今日再次尝试,先是搜索了外网的教程,发现修改这类游戏还缺一样东西:https://armconverter.com/,可以把arm指令转成16进制(后面修改用到。
我想到了一个骚操作:下载了个网上的破解版,再下载了同版本的原版(这类游戏逻辑修改都是so文件的修改,把两个版本的so文件对比下不久知道改了哪里了吗!
打开beyandcompare,选16进制,对比两个文件,可以得到修改点在哪。
再用ida把两个so文件打开,载入前面导出的ida.py和json,等分析完后,按g跳到compare显示的地址,记录修改的16进制和汇编指令
得出结论:
bool型的has***函数,在开头return 1就可以恒为ture,具体指令是
MOV             R0, #1
BX            LR
放到https://armconverter.com/转化成16进制,鼠标点到修改地址后的第一个指令,打开hex页面再修改btye,出现16进制窗口,把
MOV             R0, #1
BX            LR
对应的16进制 0100A0E31EFF2FE1 替换之前的就行。
还有花钱不减反增的修改:
花钱具体指令是VSUB.F64      D16, D16, D17,sub是减法运算
改为VADD加法运算就行,放到https://armconverter.com/转化成16进制,同样操作替换就行
最后保存修改,修改完成
把so文件替换到apk里,把原签名删了重签名,这样,各种解锁,花钱反增就修改好了,enjoy!:lol

CIBao 发表于 2020-7-28 00:12

arm汇编指令就那么点,看得懂常用的就够了
搞多了就会发现patch能做到的事情太少了

给你们点好玩的把
STR指令跟ldr,类似于数组通过索引进行 取值写值操作
函数开始的r0寄存器对应this指针,可以用str指令进行修改类成员变量

mscsky 发表于 2020-7-28 09:38

涛之雨 发表于 2020-7-28 07:41
li2cpp的就从来没破解成功过。。。。
需要运算的。。
ida每次加载那个so加载了好久然后就卡死。。。。。
...

只留了笔记,修改完原版就给删了:lol

落雨碎江南 发表于 2020-7-27 21:40

楼主厉害啊{:301_1003:}

Ldfd 发表于 2020-7-27 21:48

确实挺偷的

Cahal 发表于 2020-7-27 21:52

哈哈 以后破不出来都这样搞一搞

xuhuiai 发表于 2020-7-27 22:04

好专业   不明觉厉!!!

jipinfeiyi 发表于 2020-7-27 22:10

可以可以,偷学武功的确是好方法,特别是外网不发布破解后,可以自己动手,哈哈哈哈哈

我是阿乐 发表于 2020-7-27 22:37

支持支持:handshake

li11196214 发表于 2020-7-27 23:29

楼主牛逼

away99 发表于 2020-7-28 00:18

掌握姿势,不至于需要时到处找人求助
页: [1] 2 3 4
查看完整版本: il2cpp游戏修改:从偷学武功到入门