深圳大学逆向工程实验报告——拆解二进制炸弹游戏
需积分: 0 170 浏览量
更新于2024-08-04
收藏 1.7MB DOCX 举报
"深圳大学计算机系统实验报告 - 逆向工程实验"
本次实验是关于逆向工程的实践,旨在让学生理解程序的运行机制,包括控制语句、函数、返回值以及堆栈结构,并掌握如何使用GDB调试工具和objdump反汇编工具。实验中,学生需要解决一个名为“二进制炸弹”的游戏,该游戏包含六个关卡,每个关卡都需要通过输入正确的字符串或数字来避免程序触发错误并降低评分。
实验环境设定在装有Ubuntu 17 64位操作系统的Intel CPU计算机上,配备GDB调试器和objdump反汇编工具。实验的主要任务是分析二进制文件`bomb_64`和其主函数源代码`bomb_64.c`,而不提供每个关卡的具体源代码。学生需要通过对汇编代码的分析,找出每个阶段中触发程序跳转至“explode_bomb”部分的条件,以此找出正确通关的答案。
在实验过程中,学生首先需要对第一关(Phase_1)进行分析。从反汇编的代码中可以发现,程序使用`je`指令判断两个字符串是否相等,如果相等则跳过爆炸。通过观察代码,学生推测关键在于0x401af8地址的字符串,通过GDB查看该内存地址的字符串,找到了通关答案:“Scienceisn'taboutwhy,it'saboutwhynot?”。
第二关(Phase_2)涉及到读取六个元素并进行循环判断。学生需要分析循环的跳出条件,即r13和r14寄存器的比较,找出正确的输入序列来满足这一条件。后续的第三关至第六关,学生需要采用类似的方法,逐步解析汇编代码,理解程序逻辑,找出通关的条件。
实验报告要求学生通过截图和文字记录实验过程,并对每个阶段进行详细分析。最后,学生需撰写实验结论和心得体会,这部分将占15分,旨在检验学生对实验内容的理解和反思。
这个实验是一个综合性的逆向工程练习,不仅要求学生具备基本的编程和调试技能,还需要他们能够理解和解释汇编代码,同时锻炼他们的逻辑推理和问题解决能力。通过这样的实践,学生能更深入地理解计算机系统的底层运作,提高他们在实际安全分析和软件调试中的能力。
2022-08-08 上传
2022-08-08 上传
2022-08-08 上传
2024-06-21 上传
2023-08-19 上传
2023-08-10 上传
2022-08-03 上传
2022-08-08 上传
2022-08-08 上传
扈涧盛
- 粉丝: 32
- 资源: 319
最新资源
- Angular实现MarcHayek简历展示应用教程
- Crossbow Spot最新更新 - 获取Chrome扩展新闻
- 量子管道网络优化与Python实现
- Debian系统中APT缓存维护工具的使用方法与实践
- Python模块AccessControl的Windows64位安装文件介绍
- 掌握最新*** Fisher资讯,使用Google Chrome扩展
- Ember应用程序开发流程与环境配置指南
- EZPCOpenSDK_v5.1.2_build***版本更新详情
- Postcode-Finder:利用JavaScript和Google Geocode API实现
- AWS商业交易监控器:航线行为分析与营销策略制定
- AccessControl-4.0b6压缩包详细使用教程
- Python编程实践与技巧汇总
- 使用Sikuli和Python打造颜色求解器项目
- .Net基础视频教程:掌握GDI绘图技术
- 深入理解数据结构与JavaScript实践项目
- 双子座在线裁判系统:提高编程竞赛效率