实验三_沈晨玙_20190921211

上传者: 35823099 | 上传时间: 2025-12-27 17:25:59 | 文件大小: 1.7MB | 文件类型: DOCX
【实验三】是深圳大学计算机科学与技术专业的一次逆向工程实验,旨在让学生理解程序的运行机制,掌握GDB调试工具和objdump反汇编工具的使用。实验设计了一个名为“二进制炸弹”的游戏,包含六个关卡,每个关卡都需要通过输入正确的字符串或数字来避免程序“爆炸”。实验的环境是在Intel CPU的Linux 64位系统(Ubuntu 17)上,使用GDB和objdump进行调试和反汇编。 实验过程中,学生需要分析汇编代码,找出引导程序跳转到“explode_bomb”部分的条件,从而找出正确的通关输入。实验的具体步骤如下: 1. **第一关**: - 学生通过反汇编找到phase_1的相关代码,发现字符串相等时可以避免“爆炸”,关键在于0x401af8地址的值。 - 使用GDB查看内存地址,找到该常量对应的字符串,答案是"Science isn't about why, it's about why not?"。 2. **第二关**: - 分析phase_2的汇编代码,发现程序读取6个元素并进行3次比较,如果当前元素不等于下一个元素则“爆炸”,同时计算累加器r12的值,如果为0则触发“爆炸”。 - 通关条件是满足数组的连续元素相等,且累加器不为0,例如输入"a[0]=a[3], a[1]=a[4], a[2]=a[5], a[0]+a[1]+a[2] != 0"。 3. **第三关**: - 学生发现需要输入两个数字,如果第一个数字大于7则触发“爆炸”。 - 关键在于正确解析输入并确保第一个数字不超过7。 实验要求学生对汇编语言有基础了解,能熟练使用GDB进行断点设置、单步执行、变量查看等调试操作,以及通过objdump工具反汇编二进制文件,理解程序的控制流程。学生需要将实验过程截图并配合文字说明,形成实验报告,并在实验结束后10日内提交,由教师进行批改。 实验结束后,学生应总结实验心得,包括但不限于以下几个方面: - 对程序控制流程的理解深化 - GDB和objdump的实际应用技巧 - 解决问题的逻辑思维和分析能力的提升 - 对逆向工程和安全编程的新认识 通过这个实验,学生不仅能巩固计算机系统的基础知识,还能提高实际问题解决能力和动手能力,为将来深入学习计算机系统和安全领域打下坚实基础。

文件下载

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明