Radare2: проверка переименованных переменных


7

Я практикую с 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) 

Проходя через ПОР работает безупречно.

px @ rbp-0x100 
5

Вы должны использовать 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......(

Если, например, вы хотите только адрес, вы можете использовать внутреннюю Grep radare в.

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

Для получения дополнительной информации о Grep radare, выполняйте ~?