pwn调制中
已经完成在Linux中的安装工作,开始进行实际使用
remote
pwn包启动文件(远程)
file_place = remote("目标服务器所在地址", int型端口)
# 不需要Linux也能进行远程打题
process
pwn包启动文件(本地)
file_place = process("./文件名")
# 正常的对本地文件进行尝试
sendline
对文件进行直接传入(只要有输入需要,会在print之前进行传入)
file_place.sendline("需要传入的payload")
# 在Windows版python中记得要传字符形式(b"payload")
recv
读取输出
file_place.recv(~a)
# 可选输入a:
# int型数据,控制读取的字符数量
# 默认为读取此时输出的所有内容
def 常用方法(file_place):
print(file_place.recv()) # 输出当前所有文件输出
print(file_place.recv(8)) # 读取当前所有文件的前8个字符
gdb指令笔记
指令表
(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 ()
(gdb) info frame
Stack level 0, frame at 0x7fffffffddf0:
rip = 0x7ffff7e26660 in __printf (printf.c:28); saved rip = 0x400890
called by frame at 0x7fffffffde40
source language c.
Arglist at 0x7fffffffdde0, args: format=0x602ca0 “%9$s”
Locals at 0x7fffffffdde0, Previous frame’s sp is 0x7fffffffddf0
Saved registers:
rip at 0x7fffffffdde8
多次尝试还是没办法查看到详细的栈
搁置中(2021.09.27-21:17)