我挂钩一个二进制文件(aarch64),并且我想重写分支指令以分支到特定地址。我正在使用Radare2重写分支。但是,只要分支的目标地址在当前指令地址之前,它就会说“无法汇编...”。而且它不能汇编'b.gt ...'
即使当我尝试使用(wa)使用相同的操作码来编辑指令时,它也会产生相同的错误(无法汇编),但是如果我尝试使用(wx)复制了十六进制指令,那么它将起作用!。对于其他指令,例如(mov),它也可以正常工作(使用wa)
$ r2 -A -w -b64 dummy
...
0x0040064c f3ffff17 b 0x400618
...
;-- branch:
0x00400588 e007bfa9 stp x0, x1, [sp, -0x10]!
...
[0x0040064c]> wa bl 0x400588
Cannot assemble 'bl 0x400588' at line 3
[0x0040064c]> wa b 0x400618
Cannot assemble 'b 0x400618' at line 3
[0x0040064c]> wx f3ffff17
[0x0040064c]> wa bl loc.branch
Cannot assemble 'bl loc.branch' at line 3
The instruction at 0x0040064c should be
bl 0x00400588
对于arm64,radare2不支持该功能。现在向后分支问题已在radare2中修复。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句