如何修复radare2中的'无法在第3行组装'bl 0x400588'

时间:2018-12-22 13:33:56

标签: arm64 armv8 radare2

我正在钩住一个二进制文件(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

1 个答案:

答案 0 :(得分:1)

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