Как исправить "не могу собрать" bl 0x400588 "на линии 3" в radare2

Я перехватываю двоичный файл (aarch64), и я хочу переписать инструкции ветвления для перехода на конкретные адреса. Я использую Radare2 для переписывания веток. Но он говорит "не может собрать..." всякий раз, когда целевой адрес ветвления находится перед текущим адресом инструкции. Также он не может собрать "b.gt..."

Даже когда я пытался отредактировать инструкцию с тем же кодом операции, используя (wa), это выдает ту же ошибку (не удается собрать), но если я попытался с помощью (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

1 ответ

Решение

Это не было поддержано radare2 для arm64. Теперь проблема обратной ветвления исправлена ​​в radare2.

Другие вопросы по тегам