CSAPP——实验二 拆炸弹

本文详细介绍了《深入理解计算机系统》实验二——拆炸弹的过程,涵盖Phase1到Phase5,通过分析汇编代码和使用GDB调试,揭示了每个阶段的解决策略,帮助读者提升对函数调用和调试技巧的理解。
摘要由CSDN通过智能技术生成

《Hardware/Software Interface》实验二 是拆炸弹,也是实验里面比较有意思的一个实验,实验能帮助我们加深理解函数的调用过程,提升用GDB调试代码的能力,话不多说,把实验内容附上。

附实验环境:
64位Linux操作系统

拆炸弹

实验总共有六个阶段,难度也是在逐步加大,每个阶段都要求你输入一些信息,只有提供恰当合适的正确信息,才会拆炸弹成功进入下一个阶段,那么如何获得正确的信息,就需要用GDB调试在汇编代码中获得线索。本文主要介绍每个阶段的正确输入的探索过程,对于GDB工具的使用大家可以另找资料来学习。

Phase1

第一关的C代码如下,只有三行(其实每关也都只有三行),流程就是读入输入的数据然后数据处理,若是“正确”的输入,代码就会执行到 phase_defused();若不是“正确”的输入,炸弹就会爆炸,然后程序终止。好的,就让我们来找到本关的“正确”输入。

    input = read_line();             /* Get input                   */
    phase_1(input);                  /* Run the phase               */
    phase_defused();                 /* Drat!  They figured it out!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值