深圳大学计算机系统实验:缓冲区溢出攻击
需积分: 0 65 浏览量
更新于2024-08-04
收藏 1MB DOCX 举报
"实验报告,缓冲区溢出攻击,计算机系统,GDB调试,objdump反汇编,Intel CPU,Linux 64位,黑客游戏,关卡挑战,汇编代码,全局变量修改"
实验报告详细解读:
实验的焦点在于理解和应对缓冲区溢出攻击,这是计算机安全领域的一个重要主题。缓冲区溢出通常发生在程序处理数据时,如果输入的数据超过了预分配缓冲区的大小,就会覆盖相邻内存区域的数据,可能导致程序崩溃或被恶意利用。在这个实验中,学生们需要通过模拟黑客攻击来学习如何预防和检测此类漏洞。
实验的目标分为三个方面:理解参数传递机制,掌握缓冲区溢出攻击策略,以及熟练使用GDB调试器和objdump反汇编工具。这些工具对于分析程序行为,特别是在底层级别,是至关重要的。GDB允许程序员在运行时检查和控制程序,而objdump则能将二进制代码转换为可读的汇编语言,帮助理解代码执行流程。
实验环境是在Intel CPU上的64位Linux系统,使用32位的库和sendmail,因为实验涉及的可执行文件bufbomb是32位的。实验包含三个关卡,每个关卡都要求学生通过分析汇编代码和栈帧结构,利用缓冲区溢出攻击使程序在getbuf()函数返回时跳转到特定的函数。第一关只涉及函数跳转,第二关需要准备正确的参数,第三关则需要在返回前执行额外的汇编代码以修改全局变量。
实验步骤中,学生首先需要安装必要的32位库和sendmail,然后通过objdump查看getbuf函数的汇编代码,理解gets()函数调用时的栈情况。getbuf()调用未加保护的gets()函数,使得溢出成为可能。学生的任务是找到利用这个漏洞的方法,使得getbuf()在返回时能够跳转到指定的函数。
实验报告应包括解决每个关卡的详细思路,通过截图展示实验过程和结果。这不仅锻炼了学生的逆向工程能力,也加深了他们对程序执行、内存管理和安全性的理解。通过这样的实践,学生能够更好地理解如何在实际环境中防止缓冲区溢出攻击,提高软件的安全性。
2022-08-08 上传
2022-08-08 上传
2022-08-08 上传
2022-08-08 上传
2022-08-03 上传
2022-08-03 上传
2022-08-03 上传
2022-08-08 上传
2022-08-08 上传
乔木Leo
- 粉丝: 31
- 资源: 301
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录