CTF-二进制从入门到放弃(二)-gdb的使用
*****gdb调试 *****
1.开始调试
gdb file
set args p1 p2
2.gdb控制
start 开始
quit/q 退出
3.控制流
r/run 启动程序
c/continue 继续执行
n/ni/next 单步步过
s/si/step 单步步入
finish 执行到返回
[查看]:
bt/backtrace 查看堆栈函数调用
p/print 打印 p/[type] [command]
[type]:
s 按字符串显示
x 按十六进制格式显示变量。
i/d 按十进制格式显示变量。
t 按二进制格式显示变量。
c 按字符格式显示变量。
f 按浮点数格式显示变量。
o 按八进制格式显示变量。
u 按十六进制格式显示无符号整型。
a 按十六进制格式显示变量。
x/examine查看 x/[size][PostBytes][type] [addr]
e.g. x/200wx $eax
i r /args/locals 查看寄存器/参数/局部变量
[PostBytes]:
b/h/w/g(单/双/四/八字节)
4.断点
b/brak funname/addr 断点
info b 列出所有断点信息
del/delete 删除指定序号的断点 del 2
clear 清楚指定地址的断点 ,无地址为所有
5.修改数据
set $xxx=value
set{[type]}[addr]=value type:int………………
6.回车默认为上一条指令