山东大学:MIPS汇编二进制炸弹拆除实验详解

需积分: 0 7 下载量 105 浏览量 更新于2024-08-03 收藏 490KB PDF 举报
山东大学计算机系统基础实验三 "Defusing Binary-Bomb" 是一项旨在培养学生对MIPS汇编语言、调试工具以及程序分析能力的实践活动。该实验以一个模拟的二进制炸弹游戏的形式进行,学生需在龙芯实验平台上使用Ubuntu系统,通过GDB调试工具逐步拆除六个阶段的炸弹。 实验目标主要分为三个方面: 1. 熟悉MIPS指令集:通过实际操作和分析,让学生掌握MIPS指令的基本用法,了解其执行流程。 2. 反汇编与程序理解:通过反汇编,分析程序逻辑,理解函数调用、参数传递等过程,以便找出输入字符串的关键。 3. GDB调试工具应用:学会利用GDB工具定位程序执行位置,检查寄存器状态,以确定正确的输入值。 实验配置包括: - MIPS二进制可执行文件bomb:实验的核心文件,隐藏了源代码,但提供了汇编代码,用于辅助理解。 - 龙芯实验平台:提供硬件环境,支持MIPS指令集的运行。 - 所需软件:GDB调试工具,用于调试和分析程序。 在拆除phase_1的过程中,学生需要观察关键指令如`addiu`和`sw`,它们用于栈空间管理,尤其是`sw a0,32(s8)`,这表明参数被保存到栈中。通过`addi u$a1, v0, 10092`,可以推断出$a0和$a1可能用于字符串比较。在GDB环境下,设置断点(如0x00400d90)后,通过运行程序并输入字符,观察程序执行路径,直到找到`explode_bomb`程序段的入口条件。 在后续的阶段中,难度可能会逐渐提升,可能涉及到更复杂的逻辑判断或加密算法。学生需要通过不断分析和调试,理解程序中隐藏的条件,然后输入正确的字符串才能解除炸弹。整个实验不仅锻炼了解决实际问题的能力,也加深了对MIPS汇编语言和调试工具的实践应用。