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

莎拉

我挂钩一个二进制文件(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
莎拉

对于arm64,radare2不支持该功能。现在向后分支问题已在radare2中修复。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

entry0在radare2中的含义

mov bl在组装中做什么

如何在radare2中获得良好的堆栈视图?

汇编指令 MOV BL,0

radare2 中的 ASM 模式搜索

'NSInternalInconsistencyException',原因:“试图将第3行插入第0节,但更新后第0节只有2行”

BL指令ARM-如何运作

“ BL”臂指令拆卸如何工作?

D3.js starter(noob):如何从bl.ocks.org/mbostock工作中获取D3示例?

GDB还是Radare2?

Radare2“ pd”命令

如何修复“java.lang.IllegalStateException:无法从 CursorWindow 读取第 2 行、第 7 列”。

SQL如何从第2行,第2行,第3行减去结果第1行

Lychee:文件上传错误 - 无法在第 0 行的 Unknown 中创建临时文件

警告:未知:无法打开流:在第0行的“未知”中没有这样的文件或目录

警告:文件上传错误-无法在第0行的“未知”中创建临时文件

Gson:应为字符串,但在第1行第3列路径$ [0]中为BEGIN_OBJECT

无法从CursorWindow中读取第11行第34行

第3行中的标题?

SQLite无法读取第0行

x86组装中的高效mod 3

如何计算(第1行和第2行)与(第3行和第4行)之间的时间增量?

如何使Radare2将符号表信息用于库调用?

如何修复自定义 ggplot2 函数中的“替换有 [x] 行,数据有 [y]”错误?

jq:错误:在<top-level>的第1行中未定义canonical / 0。无法使用jq在json中读取\

oracle sql-比较第1行和第2行,在第3行显示结果?

PHP警告:PHP启动:无法加载动态库'-找不到指定的过程。在第0行的Unknown中

警告:未知:无法打开流:在第0行(php)的“未知”中没有此类文件或目录

Laravel警告:未知:无法打开流:在第0行的“未知”中没有这样的文件或目录