radare2 标签未显示在 jmp 指令中

逆向工程 雷达2
2021-06-16 17:52:29

让我们举一个在radare2中用pdf命令反汇编的64位elf可执行文件的例子:

...
0x00400ac0      0f859c000000   jne 0x400b62
...
0x00400b62      90             nop
...

我想在 0x00400b62 行上放一个标签。它在radare2中被称为“标志”。所以我输入:

xxxxxx> f mylabel @ 0x00400b62

这很棒,因为当我再次使用 pdf 反汇编时,我可以看到我的标志:

;-- mylabel:
0x00400b62      90       nop

但我仍然在跳转指令中看到 0x400b62:

0x00400ac0      0f859c000000   jne 0x400b62

我想看看:

0x00400ac0      0f859c000000   jne mylabel

我怎样才能做到这一点 ?

非常感谢

1个回答

您应该使用由点分隔的标志名称。这是因为寄存器和其他东西也是标志,以避免覆盖和混淆。

例如,而不是这样:

[0x140008f9c]> f mylabel @ 0x140008fde
[0x140008f9c]> pdf
...
|           0x140008fd5      85c0           test eax, eax
|       ,=< 0x140008fd7      7505           jne 0x140008fde
|       |   0x140008fd9      66895c2470     mov word [local_70h], bx
|       |   ;-- mylabel:
|       `-> 0x140008fde      3d04010000     cmp eax, 0x104             ; 260
|       ,=< 0x140008fe3      7511           jne 0x140008ff6
...

像这样命名(loc.mylabel):

[0x140008f9c]> fr mylabel loc.mylabel
[0x140008f9c]> pdf
...
|           0x140008fd5      85c0           test eax, eax
|       ,=< 0x140008fd7      7505           jne loc.mylabel
|       |   0x140008fd9      66895c2470     mov word [local_70h], bx
|       |   ;-- loc.mylabel:
|       `-> 0x140008fde      3d04010000     cmp eax, 0x104             ; 260
|       ,=< 0x140008fe3      7511           jne 0x140008ff6
...