使用`ds`进行单步调试时,Radare2不更新当前地址?

逆向工程 调试 雷达2
2021-07-11 02:58:26

使用ds? 进行单步调试时,Radare2 不更新当前地址

我正在使用单步 ( ds)在 Linux 上调试 ELF 二进制文件问题是提示处的当前地址在每一步后都不会更新。

提示:

在此处输入图片说明

如何让 Radare2 更新提示以反映 EIP 的当前值?

此外,是否可以让 Radare2 在每个指令之后自动反汇编下一条指令ds,就像 GDB 一样?

2个回答

如何让 Radare2 更新提示以反映 EIP 的当前值?

e cmd.prompt = sr PC为它使用有关更多详细信息,请参阅问题问题

此外,是否可以让 Radare2 在每个 ds 之后自动反汇编下一条指令,就像 GDB 一样?

不是自动解决方案,但是您可以在pd1每次想要查看下一条要执行的指令时执行。

但是,如果你想让它严重是自动的,你可以修改源代码进行pd1自动为您。为此,您需要修改libr/core/cmd_debug.c. 只需找到ds处理的地方并将相关代码放在那里,如下所示: r2_pd1

然后运行make并享受新功能。 r2_pd1_已添加

您可以做的是pd与临时搜索运算符@传递rip寄存器一起使用以便pd从该地址工作。

所以,而不是pd仅仅使用pd@rip,你应该没问题。

[0x00000000]> pd
    ;-- rsi:
    0x00000000      ff             invalid
    ...


[0x00000000]> pd@rip
    ;-- rip:
    ┌─> 0x10000b3bf      4c892424       mov qword [rsp], r12
    ╎   0x10000b3c3      4489ea         mov edx, r13d
    ╎   0x10000b3c6      4c89f9         mov rcx, r15

此外,您可以使用V!-mode(或任何其他图形视图模式)视图进行调试。在您跳过二进制文件后,它们会自动更新。