注:本期是写给自己看的
首先,我找到了a内存的某个忍者的人物移速,然后通过ce调试,找到了访问他的操作码
LDR R0, [R4,#36]
随后看了寄存器,r4十进制偏移36就是这个忍者的移速,而ldr是把他读取到r0中
接着我看到了他地址下面的地址,操作码是这个
STR R0, [R9,#20]
str则是将r0存入r9十进制偏移20这个地址的数值中
所以,我们只要在ldr后将r0传入一个参数就好了。
思路有了,实践开始
我们先在附近找到一个方便hook的地方
搜索附近,接着保存好
将LDR R0, [R4,#36]复制到hook的地方,然后在写入LDR R0, [PC,#20],以传入参数
至于参数,长按STR R0, [R9,#20]然后转到的地址就是你要写的参数
然后,为了确保函数能正常运行,我们要无条件(b指令)转到ldr的下一条地址,即:STR R0, [R9,#20]
然后,我们复制他的地址
接着在hook的地方,b到这个地址
接着,我们需要这个函数转到我们hook的地方,也要b。
就复制hook开头的地址,然后在原函数处,b过去
接着,我们将参数改大,就实现了hook移速的效果了