### CSAPP Lab2 实验指导说明 #### 一、实验背景与目的 在本次实验(CSAPP Lab2)中,学生们将面临一个充满挑战的任务:拆解并解除一系列所谓的“二进制炸弹”。这些炸弹是一种特殊的程序,由一系列阶段组成。每个阶段都需要用户通过标准输入(stdin)输入特定的字符串来解除。如果输入正确,则该阶段被成功解除,并且炸弹会进入下一个阶段;反之,炸弹将会爆炸,输出 "BOOM!!!" 并终止运行。只有当所有阶段都被成功解除后,整个炸弹才算被彻底解除。 #### 二、实验环境与要求 本实验为每位参与者提供了一个独特的炸弹,需要在指定的截止日期前完成拆除。为了确保实验的成功,必须遵循以下几点: - **实验平台**:炸弹是专门为64位机器设计的,因此建议在实验室的Linux机器或64位的CSE Linux虚拟机上进行实验,并确保解决方案在attu服务器上也能正常工作。 - **兼容性问题**:据传,邪恶博士已经确保炸弹在非指定环境下无法正常运行,因此务必确保所有的测试和验证都在官方推荐的环境中进行。 #### 三、实验流程与步骤 1. **获取炸弹文件**:通过执行以下命令获取炸弹文件: ``` wget https://courses.cs.washington.edu/courses/cse351/14sp/labs/lab2/<username>/lab2-bomb.tar tar xvf lab2-bomb.tar ``` 其中,`<username>` 需要替换为参与者的UWNetID。上述命令将会创建一个名为 `bomb$NUM` 的目录(其中 `$NUM` 是炸弹的唯一标识符),该目录包含以下文件: - `bomb`:可执行的二进制炸弹程序。 - `bomb.c`:包含炸弹主函数的源代码文件。 - `defuser.txt`:用于记录解决方案的文本文件。 2. **炸弹分析与解除策略**: - 使用各种工具对二进制文件进行逆向工程,例如使用 `objdump` 或 `IDA Pro` 等工具来反汇编程序。 - 分析每个阶段的代码逻辑,理解其工作原理及如何通过正确的输入来解除它。 - 将每一步的解决方案记录在 `defuser.txt` 文件中。 3. **提交作业**:完成炸弹解除后,将解决方案文件 `defuser.txt` 提交至指定地址。 #### 四、实验中的挑战与注意事项 - **安全性考虑**:实验中的炸弹含有多种防篡改机制,因此不能直接修改二进制文件或源代码来达到解除的目的。 - **时间管理**:虽然任务艰巨,但必须在截止日期前完成。合理安排时间,尽早开始实验以应对可能出现的问题。 - **资源利用**:充分利用实验室提供的资源和支持,如查阅相关文献、寻求助教的帮助等。 #### 五、实验总结 通过本次实验,参与者不仅能深入了解二进制程序的工作原理,还能掌握基本的逆向工程技术,这对于未来在网络安全、软件开发等领域的工作都将大有裨益。同时,这也是一个锻炼解决问题能力和团队协作能力的好机会。希望每位参与者都能在这次有趣的挑战中学到更多有用的知识。
- 求是六六2015-06-23说的很详细,很好
- 天上飞哒猪2015-02-07做实验时用到了,挺不错!
- 粉丝: 593
- 资源: 11
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助