Как исправить «не могу собрать» bl 0x400588 «на линии 3» в radare2 - PullRequest
0 голосов
/ 22 декабря 2018

Я перехватываю двоичный файл (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 Ответ

0 голосов
/ 27 декабря 2018

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

...