对文件进行直接传入 只要有输入需要 会在print之前进行传入
file_place.sendline( 需要传入的payload ) # 在Windows版python中记得要传字符形式 b payloadrecv
读取输出
file_place.recv(~a) # 可选输入a # int型数据 控制读取的字符数量 # 默认为读取此时输出的所有内容 def 常用方法(file_place): print(file_place.recv()) # 输出当前所有文件输出 print(file_place.recv(8)) # 读取当前所有文件的前8个字符pdb指令笔记 指令表
gdb help 查看命令帮助 简写h
gdb help x[str] 具体命令x查询在gdb中输入help x
gdb run 重新开始运行文件 简写r
gdb run-text 加载文本文件
gdb run-bin 加载二进制文件
gdb start 单步执行 运行程序 停在第一执行语句
gdb list 查看原代码 简写l
gdb list n[int] 从第n行开始查看代码
gdb list x[str] 查看具体函数x
gdb set 设置变量的值
gdb next 单步调试 逐过程 函数直接执行 ,简写n
gdb step 单步调试 逐语句 跳入自定义函数内部执行 简写s
gdb backtrace 查看函数的调用的栈帧和层级关系 简写bt
gdb frame 切换函数的栈帧 简写f
gdb info 查看函数内部局部变量的数值 简写i
gdb finish 结束当前函数 返回到函数调用点
gdb continue 继续运行 简写c
gdb prin 打印值及地址,简写p
gdb quit 退出gdb,简写q
gdb break n[int] 在第n行设置断点,简写b
gdb info breakpoints 查看当前设置的所有断点
gdb delete breakpoints n[int] 删除第n个断点,简写d
gdb display 追踪查看具体变量值
gdb undisplay 取消追踪观察变量
gdb watch 被设置观察点的变量发生修改时 打印显示
gdb i watch 显示观察点
gdb enable breakpoints 启用断点
gdb disable breakpoints 禁用断点
gdb n[int] 查看内存n/20xw 显示20个单元 16进制 4字节每单元
gdb run argv[1] argv[2] 调试时命令行传参
上述指令表原文链接
使用过程尝试以2017-UIUCTF-pwn200-GoodLuck为例
gdb ./goodluck
尝试断点布置(gdb) b printf
Breakpoint 1 at 0x400640
(gdb) r
Breakpoint 1, __printf (format 0x602ca0 “%9$s”) at printf.c:28
28 printf.c: No such file or directory.
不知道为什么 无法显示详细的stack
尝试查看详细stack(gdb) bt
效果同 (gdb) backtrace
#0 __printf (format 0x602ca0 “%9$s”) at printf.c:28
#1 0x0000000000400890 in main ()



