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 arm汇编指令就那么点,看得懂常用的就够了
搞多了就会发现patch能做到的事情太少了
给你们点好玩的把
STR指令跟ldr,类似于数组通过索引进行 取值写值操作
函数开始的r0寄存器对应this指针,可以用str指令进行修改类成员变量 涛之雨 发表于 2020-7-28 07:41
li2cpp的就从来没破解成功过。。。。
需要运算的。。
ida每次加载那个so加载了好久然后就卡死。。。。。
...
只留了笔记,修改完原版就给删了:lol 楼主厉害啊{:301_1003:} 确实挺偷的 哈哈 以后破不出来都这样搞一搞 好专业 不明觉厉!!! 可以可以,偷学武功的确是好方法,特别是外网不发布破解后,可以自己动手,哈哈哈哈哈 支持支持:handshake 楼主牛逼 掌握姿势,不至于需要时到处找人求助