gdb操作:
gdb ./xxx
开始调试xxx程序,如果不能运行,需要先 chmod +x ./xxx
gdb attach [pid]
通过程序id即pid,gdb附加到一个正在运行的程序,并对其进行调试
start
运行程序并断点在第一条指令
输出寄存器,反汇编等信息
list
有源码的情况下 输出源码
1 | pwndbg> list |
b *内存地址
在内存地址处下断点
b 函数名/*函数名
下断点
1 | pwndbg> b main |
info b
查看断点信息
1 | pwndbg> info b |
step
step(in),步入,在有源码调试时,执行下一行源码,有函数调用时进入函数调用
next
步过,在有源码调试时,执行下一行源码,有函数调用时执行完函数并执行到函数调用的下一行
nexti/ni
next instruction,步过,执行下一行汇编指令
stepi/si
step into,步入,执行下一行汇编指令,如果有函数调用时进入函数的第一行汇编指令
finish
运行完当前的函数,停在最后一句汇编代码
info registers
寄存器信息
x/<n/f/u> <addr>
格式:
1 | f格式: |
一些GDB参考链接:
https://blog.csdn.net/tzshlyt/article/details/53668885
https://www.jianshu.com/p/b7896e9afeb7
https://blog.csdn.net/u013525455/article/details/52813637
https://www.jianshu.com/p/e6af28e2566f
https://www.cnblogs.com/xiaoshiwang/p/10755199.html
https://www.cnblogs.com/xsln/p/gdb_instructions1.html
https://www.cnblogs.com/tangtangde12580/p/8045980.html
https://www.cnblogs.com/zhoug2020/p/7283169.html
https://www.jianshu.com/p/adcf474f5561
https://blog.csdn.net/songchuwang1868/article/details/86132281