PWN入门使用 2018-02-16 16:10:23
GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。
敲gdb进入gdb-peda
file pwn1 #选择加载的文件
gdb -q
# -q 静默模式
gdb: r(run ) #执行
gdb:disas main #反编译main()函数 经常用
gdb:b (break) #设置断点
b func_name #对函数下断点
b *addr #对地址下断点
info b # 查看断点
分别对应寄存器取值情况/代码/栈的情况
info r(egister) #查看寄存器情况
ni #单步调试
si #step into 步进 进到某个函数里面
bt #backtrace 查看现在的堆栈情况 对于了解程序执行比较有用
c #continue 继续执行到下一个断点
打印地址的值
x/wx adress #打印该地址的值,w代表 word.在32位嵌入式系统中,一个字WORD占32bit,即4个字节,1个字节=bit。
如x/10wx 0xffffce90 #10代表打印10个,w代表32位,可以换为b/h/g 分别对应1 2 8byte, x可以替换为 u (unsigned int ) s(string) d(10进制) i(指令)
set *addr =value #设置地址的值
list #列出源码
print val_name #打印变量值
info locals #查看所有局部变量的值
在cmp eax edx处下断点 然后r执行
set $eax=$edx 敲击回车。。
gdb-peda 版本中的好用的功能
elfsymbol #可以把程序中的函数以及地址列出来 做ROP特别有用
vmmap #查看进程中的权限
readelf #查看section
find 字符串 #查找在内存中查找字符串 如/bin/sh(就是shell)