少壮不努力,长大靠翻译!
前言:功劳在Il2CppDumper推出了安卓版,也就是手机上也可以解压dump.cs文件,结合对so修改知识的基础上,实现so文件修改。但是,手机上的so修改只是对于一些基础上的修改,分析不够全面,缺点比较大;复杂的修改过程还要从ida里面分析…..这里我就介绍一些可以直接分析修改的:
1.暴力赋值,也就是常见的改返回值,get_coin这些int,long整型的方法。
2.赋值布尔值,bool这些,通常用于解锁,购买是否足够: isunlock,canbuy,
3.一些比较特殊的,直接ret结束掉。
4.等等,老手可能就会更多种的改法…..准备工具:
1.Il2CppDumper(安卓版)
2.mt管理器
3.十六进制编辑器(mt没会员就用这个)
4.arm指令转换器地址:https://armconverter.com/
工具下载地址:https://wws.lanzoub.com/b02va5q8d密码:1111
开整!1.先进入游戏捕捉信息,尝试修改货币,发现有两种货币,可以尝试搜:gold,coin(金币,黄金),gem,diamond(宝石,钻石)
2.将游戏里的 global-metadata.dat,libil2cpp.so文件复制到一个你能找到的路径,我为了方便快速找到,直接创建了新的“1”文件夹。
3.打开Il2CppDumper,找到so文件,点击并打开。
4.输入“y”确认。
5.点击 CHOOSE CURRENT FOLDER 创建执行。
6.解压好的dump.cs文件存放路径,用文本打开,这样就能愉快分析dump.cs了~
7.修改货币,搜索diamond,找到一个 get_diamond,long型,也属于整型可以直接赋值。往上翻,找到开头,确认一下方法类型 GameData (译:游戏数据),断定就是这个方法了。复制汇编地址:0xACDC84,十六进制跳转修改即可。
8.因为so属于arm64位,所以要输入64位的机器码:MOV W0, #9999—— E0 E1 84 52 RET —— C0 03 5F D6如果觉得9999数值不够大,可以输入6个F的值(16777215):MOV W0, #FFFFFF—— 00 E0 BF 12RET —— C0 03 5F D6arm32位机器码:MOV R0, #9999 —— 0F 07 02 E3BX LR —— 1E FF 2F E1大点的值(38797012):25 06 A0 E3 1E FF 2F E1
10,继续,修改敌人不会攻击,搜 attack,找到僵尸控制类型,十有八九就是这个方法。
11.直接RET结束掉,原理就是执行攻击函数的时候不会有任何的逻辑操作,达到不会攻击效果。RET——C0 03 5F D5arm32位:BX LR —— 1E FF 2F E1
9.测试效果。
暂无评论内容