1

我正在连接一个二进制文件(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
4

1 回答 1

1

arm64 的radare2 不支持它。现在,radare2 中修复了后向分支问题。

于 2018-12-27T13:26:08.030 回答