没有合适的资源?快使用搜索试试~ 我知道了~
CS1806_U201814655_杨雨鑫2
需积分: 0 1 下载量 26 浏览量
2022-08-08
22:17:16
上传
评论
收藏 6.78MB DOCX 举报
温馨提示
试读
48页
2.实验设计:找到cmp指令比较的字符串的地址,从而在内存中找到字符串 3.实验过程:首先使用objdump工具把bomb反汇编到一个asm文件,并且使用vi文
资源详情
资源评论
资源推荐
课 程 实 验 报 告
课程名称: 计算机系统基础
专业班级: CS1806
学 号: U201814655
姓 名: 杨雨鑫
指导教师: 刘海坤
报告日期: 2020 年 6 月 7 日
计算机科学与技术学院
目录
实验 2:Binary Bombs .....................................................................................................................1
2.1 实验概述............................................................................................................................1
2.2 实验内容............................................................................................................................2
2.2.1 阶段 1 字符串比较.................................................................................................2
2.2.2 阶段 2 循环.............................................................................................................5
2.2.3 阶段三 条件/分支 ..................................................................................................7
2.2.4 递归调用..................................................................................................................9
2.2.5 阶段五 指针..........................................................................................................12
2.2.6 阶段六 链表..........................................................................................................15
2.2.7 阶段七 隐藏阶段..................................................................................................18
2.3 实验小结...........................................................................................................................21
实验 3:缓冲区溢出攻击...............................................................................................................22
3.1 实验概述...........................................................................................................................22
3.2 实验内容...........................................................................................................................22
3.2.1 level 0 smoke ..........................................................................................................22
3.2.2 level 1 fizz...............................................................................................................26
3.2.3 level 2 bang .............................................................................................................29
3.2.4 level 3 boom............................................................................................................35
3.2.5 level 4 nitro .............................................................................................................40
3.3 实验小结............................................................................................................................45
实验总结..........................................................................................................................................46
实验 2:Binary Bombs
2.1 实验概述
本实验中,你要使用课程所学知识拆除一个“Binary Bombs”来增强对程序
的机器级表示、汇编语言、调试器 和逆向工程等方面原理与技能的掌握。
一个“Binary Bombs”(二进制炸弹,简称炸弹)是一个 Linux 可执行 C 程
序,包含 phase1~phase6 共 6 个阶段。 炸弹运行的每个阶段要求你输入一个特
定的字符串,若你 的输入符合程序预期的输入,该阶段的炸弹就被“拆除”, 否
则炸弹“爆炸”并打印输出 "BOOM!!!"字样。 实验的目标是你要拆除尽可能多的
炸弹阶段。
每个炸弹阶段考察了机器级语言程序的一个不同方面, 难度逐级递增:
阶段 1:字符串比较
阶段 2:循环
阶段 3:条件/分支:含 switch 语句
阶段 4:递归调用和栈
阶段 5:指针
阶段 6:链表/指针/结构
另外还有一个隐藏阶段,但只有当你在第 4 阶段的解之后附加一特定字符串
后才会出现。
拆弹技术:为了完成二进制炸弹拆除任务,你需要
① 使用 gdb 调试器和 objdump 来反汇编炸弹的可执行文件;
② 单步跟踪调试每一阶段的机器代码
③ 理解每一汇编语言代码的行为或作用,
④ 进而设法“推断”出拆除炸弹所需的目标字符串。
⑤ 这可能需要你在每一阶段的开始代码前和引爆炸弹的函数前设置断点,以便
于调试。
实验语言:C 语言
实验环境:linux
2.2 实验内容
通过 gdb 和 objdump 反汇编工具得到反汇编代码,通过分析反汇编代码完成
拆弹任务。
2.2.1 阶段 1 字符串比较
1.任务描述:
找到和输入字符串比较的字符串信息,从而破解出密码。
2.实验设计:
找到 cmp 指令比较的字符串的地址,从而在内存中找到字符串。
3.实验过程:
首先使用 objdump 工具把 bomb 反汇编到一个 asm 文件,并且使用 vi 文本编
辑器打开。
接着使用 gdb 工具,反汇编 bomb 可执行文件。这里使用 disas 指令查找
phase_1 函数的位置:
图 2.1 main 函数和 phase_1 函数反汇编代码
这里我们发现在调用 string_not_equal 之前把一个地址送入了堆栈中,并
且在后面的比较中使用了该地址中存储的元素,故使用 gdb 工具查看数据段中该
地址存储的数据:
剩余47页未读,继续阅读
ai
- 粉丝: 55
- 资源: 315
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0