Radare2:检查重命名的变量

逆向工程 雷达2
2021-07-06 08:47:44

我正在练习 Radare2,最新提交。

radare2 2.3.0-git 16814 @ linux-x86-64 git.2.2.0-5-g61a903315

在我的会话期间,我需要将局部变量重命名为更易于理解的名称,例如

var int local_110h @ rbp-0x110
:> afvn local_110h commandLine

是否有命令可以检查此变量中的内容以及最终指向的内容?

我期待这个:

px @ commandLine
px @ [commandLine]

但它不起作用:

:>px @ commandLine
Invalid address (commandLine)
|ERROR| Invalid command 'px @ commandLine' (0x70)

通过 rbp 可以完美地工作。

px @ rbp-0x100
1个回答

你应该使用afvd.

[0x00402a00]> afv?
...
...
| afvd name     output r2 command for displaying the value of args/locals in the debugger
...
...

仅执行afvd将打印函数中所有局部变量的值,如果您使用变量名称执行它,您将获得radare2命令:

[0x00402a00]> afvn local_110h commandLine
[0x00402a00]> afvd commandLine
pxr $w @rsp+0x110

你会得到pxr $w @rsp+0x110,这是一个radare2命令。

您可以.在它之前添加一个点来执行它:

[0x00402a00]> .afvd commandLine
0x7fffdc9e9258  0x28ffedf4ccd19d64   d......(

例如,如果您只需要地址,则可以使用radare 的内部grep。

[0x00402a00]> .afvd commandLine~[0]
0x7fffdc9e9258

有关radare 的grep 的更多信息,请执行 ~?