GDB逆向调试分析

最近在学习堆栈溢出漏洞,势必要深入了解一下Linux下GDB工具的使用了。

  1. disas + 函数名 查看该函数的汇编代码
  2. info register 查看寄存器信息,可以简写成i r,后面可以跟寄存器名,表示显示该寄存器值
  3. si、ni i是指指令instruction,si是步进而且跟踪进入函数内部,ni不会跟踪进入函数,而是继续执行下面的语句。
  4. p + 变量名 打印变量信息,可以在p后面加控制信息比如/f 浮点格式,c字符,t为二进制,o八,x十六,d十进制 a和x同样是打印十六进制,不同名但同功能
  5. 调试运行中的程序:ps -aux | grep execFile //找到运行中的进程PID,然后使用gdb execFile PID
  6. backtrace回溯命令,可以简写为bt,n(next)往下走是看不到已经运行完的错误的,所以我们需要回溯
  7. info + line 可以查看某一行信息,info是查看详细信息的
  8. run 运行 r+参数是使用相应的参数运行
  9. quit 退出GDB
  10. b + * +地址:逆向调试的时候下断点
  11. x/1 可以查看指令 例如x/15i main 查看main函数中的第15条指令
  12. 查看帧信息:(1)frame n: 查看第n桢的信息, frame可以用f缩写(2)frame addr: 查看pc地址为addr的桢的相关信息(3)up n: 查看当前桢上面第n桢的信息(4)down n: 查看当前桢下面第n桢的信息
  13. (1)info frame、info frame n或者info frame addr查看更详细的帧的信息,(2)info args:查看当前桢中的参数(3)info locals:查看当前桢中的局部变量(4)info catch:查看当前桢中的异常处理器(exception handlers
  14. 查看调用栈信息:(1)backtrace: 显示程序的调用栈信息,可以用bt缩写(2)backtrace n: 显示程序的调用栈信息,只显示栈顶n桢(frame)(3)backtrace –n: 显示程序的调用栈信息,只显示栈底部n桢(frame)(4)set backtrace limit n: 设置bt显示的最大桢层数(5)where, info stack:都是bt的别名,功能一样

GDB逆向调试分析
https://chujian521.github.io/blog/2020/03/01/GDB逆向调试分析/
作者
Encounter
发布于
2020年3月1日
许可协议