闭关学pwn番外(一)——入门gdb

GDB调试技巧
本文详细介绍GDB调试工具的使用方法,包括安装配置、基本命令、断点设置、单步调试等,特别关注于pwn题目的调试流程,涵盖peda插件的运用,以及如何深入理解程序运行状态。
前言

gdb神器是linux下的一款调试工具,做pwn的时候经常需要动态调试查看堆栈信息,所以特意新开番外一篇来记录gdb的学习
这里放一些步骤
在这里插入图片描述

同时,学pwn时学一些调试过程中会用到的汇编也是重要的
在这里插入图片描述


gdb下载安装

kali下输入apt-get install gdb
这里科普一个gdb插件(神器)——peda!!!
peda的一个实用命令checksec检测安全保护
peda的另一个实用命令searchmem用搜索内存
同时会在调试过程中着色并显示反汇编代码,寄存器和内存信息
简而言之,就是pwn的神器
peda下载看这里


载入

先简单写一个c用于之后的编译
这里在桌面新建一个test.c,然后敲简单代码
在这里插入图片描述
之后打开终端
cat看一下

### PWN 入门习路径 #### 、基础知识准备 对于希望进入PWN领域的人来说,掌握些前置技能是非常重要的。这些技能不仅有助于理解漏洞原理,还能帮助更好地利用工具和技术来发现并修复潜在的安全问题[^1]。 - **编程语言**:熟悉C/C++是必不可少的,因为大多数二进制程序都是用这两种语言编写的。此外,Python也十分有用,尤其是在编写自动化脚本方面。 - **操作系统概念**:深入理解Linux内核的工作方式及其源码结构至关重要。这包括进程管理、内存分配以及文件系统的运作机制等知识点。开源特性使得可以直接查阅Linux内核代码,这对于安全研究人员来说是项非常有价值的资源[^3]。 - **汇编语言**:了解x86/x64架构下的汇编指令集能够极大地提升逆向工程的能力。通过阅读反汇编后的机器码,可以更清晰地看到程序的实际行为模式。 #### 二、常见漏洞与防护技术 为了有效地进行攻击面分析和防御措施设计,需要对常见的软件缺陷有深刻的认识: - **栈溢出**:当函数调用过程中传递给局部变量的数据量超过了其预定大小时就会发生这种情况。这种类型的错误可能导致任意代码执行的风险。现代编译器引入了多种缓解策略如Canary、NX位(No-eXecute)、PIE (Position Independent Executable),还有地址空间布局随机化(Address Space Layout Randomization, ASLR)等功能以增强安全性。 - **格式字符串漏洞**:如果应用程序允许外部输入控制printf系列函数中的格式说明符,则可能会泄露敏感信息甚至改写堆栈上的返回地址。因此,在开发阶段应严格验证所有来自用户的参数。 - **整数溢出/下溢**:不当处理数值运算可能引起意外的结果,进而触发其他形式的崩溃或逻辑失误。这类问题通常难以被察觉,所以编码期间要特别小心边界条件判断。 #### 三、实践操作指南 理论知识固然重要,但实际动手能力同样不可或缺。可以从以下几个方向入手积累经验: - 构建测试环境:安装必要的调试工具链,比如GDB(gdb-multiarch), pwntools库用于简化exploit开发流程;同时准备好虚拟机以便于隔离实验对象以免影响主机系统稳定性。 - 参加CTF竞赛:Capture The Flag比赛提供了丰富的挑战场景供爱好者们切磋技艺,从中不仅能到最新的攻防技巧,还可以结识志同道合的朋友共同进步成长。 ```bash # 安装pwntools Python包 pip install pwntools ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值