初识arm汇编

最近回坑某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/

汇编指令查询:https://lakwsh.net/files/huibian.html

在 “初识arm汇编” 上有3个观点

  1. 已经看出来了是2,嗨呀,我觉得有启发啊

评论已关闭