pwndbg

dbg内容

run

run:跑一遍 start:运行到程序认为的入口点停止

c

continue,执行到断点为止

ni

单步

si

步入

i

i r:查看寄存器

i b:查看断点

disassemble

disassemble $rip:反汇编rip附近汇编

disassemble main:反汇编main

b

b *0x000055555555527a:在0x000055555555527a处下断点

disabled

disabled b 8:取消断点,8是i b中第一行num

print

p $rbp:打印rbp的内容

x

x/[n][f][u] addr

n: 可选,指定要读取的单位数。比如,如果你想读取 4 个单位,可以使用 4。

f: 可选,指定格式。常见的格式包括:
x:十六进制(默认格式)
d:十进制
o:八进制
t:二进制
c:字符
i:指令(如果你想查看机器指令)

u: 可选,指定单位类型。常见的单位包括:
b:字节(byte)
h:半字(halfword,通常为 2 字节)
w:字(word,通常为 4 字节)
g:双字(giant,通常为 8 字节)
addr: 要查看的内存地址,可以是特定的地址、符号名或寄存器。

x/20i $rbp:以汇编的形式显示20行

x/20g $rbp:以8个字节形式显示20组

x/20b $rbp:以1个字节显示20组

x/20w $rbp:以4个字节显示,显示20组

x/20s $rbp:显示字符

set

set *(0x7fffffffe50)=19

有时候要用0去占满这个8字节的剩余空间,用set *(long int)0x7fffffffdd98=0x4011bb。

不能直接set寄存器,要set ((int)$rax)=19,不建议转int

set *((unsigned int)$ebp+0x10)=0x18

distance

pwndbg> distance 0x7fffffffdd60 0x7fffffffdd20
0x7fffffffdd60->0x7fffffffdd20 is -0x40 bytes (-0x8 words)

颜色

黄色:栈数据

白色:只读

蓝色:堆数据

posted @ 2024-10-23 22:49  r_0xy  阅读(54)  评论(0)    收藏  举报