如何让Radare2在每次
ds调试单步后自动反汇编下一条指令?
我认为这e asm.bytes=1会实现这一目标,但这无济于事。
特别是,GDB 支持在每个调试单步之后反汇编下一条指令,所以我想这应该也可以用 Radare2 实现。
如何让Radare2在每次
ds调试单步后自动反汇编下一条指令?
我认为这e asm.bytes=1会实现这一目标,但这无济于事。
特别是,GDB 支持在每个调试单步之后反汇编下一条指令,所以我想这应该也可以用 Radare2 实现。
如果你想在完成后执行另一个命令,ds你可以简单地使用;添加一个新命令。因此,例如,该命令ds; pd 1 @ rip将执行一条指令并在 处反汇编该指令rip。
您还可以为一组命令定义一个宏(别名)。例如,让我们定义宏foo来执行以下操作:
riprip为此,您只需运行:
[0x7f46fea5ee00]> (foo, ds, px 16 @ rip, pd 1 @ rip)
然后使用它.(foo):
[0x7f46fea5ee00]> .(foo)
- offset - 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
0x7f46fea5ee1a 89c0 48c1 e220 4809 c248 8b05 0e70 0200 ..H.. H..H...p..
;-- rip:
0x7f46fea5ee1a 89c0 mov eax, eax
[0x7f46fea5ee00]> .(foo)
- offset - 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
0x7f46fea5ee1c 48c1 e220 4809 c248 8b05 0e70 0200 4889 H.. H..H...p..H.
;-- rip:
0x7f46fea5ee1c 48c1e220 shl rdx, 0x20
[0x7f46fea5ee00]> .(foo)
- offset - 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
0x7f46fea5ee20 4809 c248 8b05 0e70 0200 4889 156f 6802 H..H...p..H..oh.
;-- rip:
0x7f46fea5ee20 4809c2 or rdx, rax
视觉模式
现在,毕竟这是说,我想补充一点,在我看来,交互式调试使用ds,dso,dc和类似的是错误的做法。对于调试会话,最好使用radare2 的可视模式。Visual Panels 模式非常适合调试会话,但您也可以在使用常规 Visual 和 Visual Graph 模式时享受良好的体验。
以下 GIF 显示了可视化面板模式 ( V!) 以及常规可视化模式。您还可以看到按:I 可以执行radare2 命令(在我执行的gif 中px)。可视面板模式是非常可配置的,您可以根据需要对其进行调整。只需使用该?键即可查看帮助和可用命令。
阅读更多: