最近回坑某unity3d游戏,该游戏我弃坑前还是旧版unity,现在却已经是il2cpp了。
以前修改的话我是直接用ildasm把dll转成c#代码修改,然后再用ilasm编译成dll。
但现在il2cpp已经没有dll了,我便开始寻找新方法。
在apk包里翻了一下,多了几个so文件,我猜最大那个so文件应该有什么有用东西吧?丢进ida神器分析~
分析完一看,貌似真和游戏有关。。可我没接触过il2cpp修改啊,上网搜一下发现个工具il2cppdumper,可以得到函数名,参数名和返回数据类型哦~这下干活轻松了
(噫,要入正题了)
之前修改是改c#,没怎么接触过arm汇编,其实arm汇编和电脑的汇编没多大区别,就是一些指令不一样,一般直接上网搜一下就知道是什么意思了~
修改嘛,一般来说直接头部mov然后返回就可以了。
不过有一点,我曾经被坑过。。就是数据类型的问题,mov r0,#1065353216 这句指令是把数值为1065353216赋值给r0寄存器,如果函数返回值类型是浮点的话,就会等于1.0,如果是int的话不变,转换方法自己上网搜索吧。。
今天就说到这里。。如果有什么说错的欢迎留言~毕竟我也算初识arm汇编
附俩个小工具
指令码转HEX:http://armconverter.com/
应该是2吧
已经看出来了是2,嗨呀,我觉得有启发啊
崩2emmmm