gdb常用命令及格式化字符串漏洞
一、gdb命令
set args
break
b(break) 1.c:6 在1.c文件的第6行设置断点
b(break) func printf也算一个func??
b 地址
info
显示各种信息的
info all-register
info line main
x
很好用,可以查看各种变量包括寄存器栈(rbp)里面的变量等
https://www.cnblogs.com/adamwong/p/10538019.html
二、格式化字符串漏洞
emmm,主要有%n,%k$的利用以及利用gdb查看变量位于printf的第几个参数(加了-m32(作用是指针啥的都是32位)的,printf输出的那个值一般都位于第6个吧)
全局变量的地址可以直接通过objdump -t 程序找到,程序编译的时候可加个参数-no-pie(反正最直接的就是可以看到使用objdump -t看地址的时候只能看到低4位)