现在要做的就是,用“SkillUpdate”类下的“AddBuff”函数替换“MagicWell”类下的“AddBuff”函数,就可以实现我们想实现的功能了。
随后启动IDAPro工具,
对libil2cpp.so进行分析,然后可以得到内容,甚至可以反编译函数。
通过地址“0xD3660C”找到“ObjectMagicWell”类的“AddBuff”函数的数据:
通过地址“0xD40EFC”找到“ObjectSkillUpdate”类的“AddBuff”函数:
对这两个函数进行反编译并进行对比:
猜测这里的“1001”代表着魔法井天赋,“1002”代表着导师天赋。
根据进制转换,10进制的1001为3E9,1002为3EA。要做的工作就行将某处的3E9更改成3EA就行。
然后就开始找了。
在“ObjectMagicWell”类的“AddBuff”函数下找到一条命令为“E9 13 00 E3”,
在“ObjectSkillUpdate”类的“AddBuff”函数下找到一条命令为“EA 13 00 E3”,
将“ObjectMagicWell”类的“AddBuff”函数下的“E9 13 00 E3”更改成“EA 13 00 E3”,按下F5进行反编译,
发现原本的“ sub_8AAF28(v4, 1001, 1, 0);”已经变成了“ sub_8AAF28(v4, 1002, 1, 0);”。
将修改加载到libil2cpp.so中,并覆盖到手机/模拟器的data/app/com.ChillyRoom.DungeonShooter-1/lib/arm目录下,
启动游戏,到魔法井获得垃圾天赋,暂停查看,发现天赋已经被取代成功了!
2.7.0版本的元气骑士的libil2cpp.so文件没有加密,所以成功了。
但是2.7.0版本的死灵法师并没有三技能,我们真正需要修改的是libil2cpp.so文件被加密的3.0.4版本的元气骑士。
当我开始尝试修改3.0.4版本的元气骑士时,发现该版本的元气骑士的libil2cpp.so文件已经被加密了,无法使用Il2CppDumper工具和IDA PRO工具进行分析。
在Il2CppDumper工具的github的说明中,得知可以使