在radare2中检查内存

逆向工程 雷达2
2021-06-09 21:47:36

如何使用寄存器检查radare2中的内存地址?我想实现这个命令在 gdb 中的作用:x/s $ebp+0x4

3个回答
[0x080495e0]> x/8x @0x80483d0
- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x080483d0  7275 6e20 6173 202e                      run as .
[0x080495e0]> x/8s @0x80483d0
run as ./prog a_number (e.g. ./prog 90)
good.
bad.
[0x080495e0]>

radare2 -d xxxx\calc.exe

[0x7c999712]> dr ebp
0x0007fd14
[0x7c999712]> x/16x @ebp+0x48
- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x0007fd5c  7d4c 5480 0000 0000 3400 00c0 a8a0 128a  }LT.....4.......
[0x7c999712]> x/s @ebp+0x48
}LT
4
[0x7c999712]>

当然,您可以使用寄存器名称作为偏移量。

jvoisin@kaa 13:48 ~ r2 -d /bin/ls
Process with PID 3963 started...
Attached debugger to pid = 3963, tid = 3963
Debugging pid = 3963, tid = 3963 now
Using BADDR 0x400000
Assuming filepath /bin/ls
bits 64
Attached debugger to pid = 3963, tid = 3963
 -- I did it for the pwnz.
[0x7fc7e0a02cd0]> db main
[0x7fc7e0a02cd0]> dc
hit breakpoint at: 4028a0
Debugging pid = 3963, tid = 1 now
[0x004028a0]> px 8 @ rsp
- offset -       0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x7ffc0cb65198  40ba 22e0 c77f 0000                      @.".....        
[0x004028a0]> px 8 @ rsp + 4
- offset -       0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x7ffc0cb6519c  c77f 0000 7852 b60c                      ....xR..        
[0x004028a0]> 

随时检查的输出p?,如果你想转储数据字符串/数字/浮点/时间戳/ hexdump都/ ...

除了之前的答案,您还可以通过Visual 面板(或仅通过Visual mode查看记忆

drr        ; to show register values
s rcx      ; for example, we're going to review address which is stores in rcx
V!         ; Open visual pannels
Press `m`  ; to select the menu panel
View -> Hexdump

您将看到一个新的十六进制转储面板。只需按Enter即可在Zoom mode(全屏)中打开此面板

在此处输入图片说明

注 0:您可以通过tab.

注 1 : 向后寻求 - 使用shift + :打开控制台 abds-向后寻求。