【视频讲解】PicoCTF 2022 玩转GDB调试器

作者:FancyPig | 发布时间: | 更新时间:

相关阅读

在网络安全入门的探讨中,推荐了Pico ctf

data-postsbox="{"id":13208,"title":"2022年网络安全学习路线——如何入门、就业","author":"FancyPig","author_id":1,"cover_image":"","cover_video":"","views":9719,"comment_count":26,"category":"cybersecurity","is_forum_post":false}">{"id":13208,"title":"2022年网络安全学习路线——如何入门、就业","author":"FancyPig","author_id":1,"cover_image":"","cover_video":"","views":9719,"comment_count":26,"category":"cybersecurity","is_forum_post":false}

在上期视频中,我们分享了Linux文件压缩的常见方式

data-postsbox="{"id":20044,"title":"【视频讲解】PicoCTF 2022 Linux文件压缩你见过几种?","author":"FancyPig","author_id":1,"cover_image":"","cover_video":"","views":2156,"comment_count":1,"category":"cybersecurity","is_forum_post":false}">{"id":20044,"title":"【视频讲解】PicoCTF 2022 Linux文件压缩你见过几种?","author":"FancyPig","author_id":1,"cover_image":"","cover_video":"","views":2156,"comment_count":1,"category":"cybersecurity","is_forum_post":false}

今天我们带大家来玩转GDB调试器

题目

你能拿到flag吗?
下载这个二进制文件

下面是一些可以参考的指令

$ chmod +x gdbme
$ gdb gdbme
(gdb) layout asm
(gdb) break *(main+99)
(gdb) run
(gdb) jump *(main+104)

视频讲解

今天我们将大家来了解如何使用GDB调试器进行断点调试,最终寻找到我们CTF挑战的flag!

更多GDB调试教学

来自黄浩杰如何用GDB调试C语言代码

通过两个例子,教大家如何使用gdb工具进行代码调试。

常见命令总结

GDB Layout命令

每次gdb时不知道程序跑到哪了,只能list?

错, layout窗口才是王道!!

命令功能
layout src显示源码窗口
layout asm显示汇编窗口
layout split显示源码 & 汇编窗口
layout regs显示汇编 & 寄存器窗口
layout next下一个layout
layout prev上一个layout
C-x 1单窗口模式
C-x 2双窗口模式
C-x a回到传统模式

GDB 跳转执行命令

命令功能
start开始启动程序,并停在main第一句等待命令
step执行下一行语句, 如语句为函数调用, 进入函数中
next执行下一行语句, 如语句为函数调用, 不进入函数中
finish连续运行到当前函数返回为止
continue从当前位置继续运行程序
return强制令当前函数返回
call func()强制调用函数, 也可以用print func()
run从头开始运行程序
quit退出程序

GDB调试输出命令

命令功能
print输出变量值 & 调用函数 & 通过表达式改变变量值
info var查看全局 & 静态变量
info locals查看当前函数局部变量
list查看当前位置代码
backtrace查看各级堆栈的函数调用及参数
set var 变量=xx将变量赋值为xx

断点

命令功能
b N_LINE在第N_LINE行上设置断点
b func在func函数上设置端点
delete breakpoints删除断点
disable breakpoints禁用断点
enable 断点号启动端点
info breakpoints查看断点列表
break foo if x>0设置条件断点

观察点

当待观察点被读 或 被写时,程序停下来,并输出相关信息

命令功能
watch设置写观察点
rwatch设置读观察点
awatch设置读写观察点
info watchpoints查看观察点列表

Display跟踪点

命令功能
display var每次停下来时,显示设置的变量var的值
undisplay取消跟踪显示
info display设置读写观察点
info watchpoints查看跟踪列表
标签:gdb调试, gdb调试器的功能, gdb调试器的使用方法和编译步骤, gdb是什么意思, gdb调试命令大全, GDB调试器设置断点的命令为, GDB调试器调试的文件是, gdb调试器有何功能?什么是远程调试, gdb调试器下载, gdb调试器原理