如何修复 radare2 中的“cannot assemble 'bl 0x400588' at line 3”

How to fix 'cannot assemble 'bl 0x400588' at line 3' in radare2

我正在挂接一个二进制文件 (aarch64),我想重写分支指令以分支到特定地址。我正在使用 Radare2 重写分支。但是只要分支的目标地址在当前指令地址之前,它就会说 'cannot assemble...' 。它也不能 assemble 'b.gt ...'

即使我尝试使用 (wa) 使用相同的操作码编辑指令,它也会给出相同的错误(不能 assemble),但如果我尝试使用 (wx) 复制十六进制指令,那么它就可以工作! .它也可以正常工作(使用 wa)用于其他指令,如 (mov)

$ 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

radare2 不支持 arm64。现在向后分支问题在 radare2 中得到修复。