Step 2: 拆除炸弹 你在这个实验室的工作就是拆除炸弹。你必须在其中一台机器上完成作业。事实上,有传言说邪恶博士真的很邪恶,如果把炸弹运到别处,它总是会爆炸。据我们所知,炸弹里还有其他一些防篡改装置。 你可以使用许多工具来帮助你拆除炸弹。请看提示部分获取一些提示和idea。最好的方法是使用调试器逐步通过反...
2. 实验:bomb 2.1 实验环境 2.2 实验介绍 2.3 炸弹1 2.4 炸弹2 2.5 炸弹3 3. 总结 前言 这一章主要介绍了x86架构下汇编指令的相关内容,最好是需要一些汇编的基础才能上手比较快,书上花了100页+来介绍这些内容~。lab是“拆除炸弹”,使用gdb调试阅读程序的汇编代码,进而“拆除”出程序中的“炸弹”。 1. 碎...
bomb lab实验不是特别好做,内容有点多,将后面的几个较难的phase在这个博客进行介绍。1. 炸弹4 代码分析phase_4是第4个 的地方,主要涉及了phase_4()和fun4()这两个函数。<br/>这个地方开…
本实验通过逆向的方式模拟拆炸弹的过程,炸弹共有6道锁,我们需要逐一破解每一道锁,最终拆除炸弹。我们可以通过执行./bomb开始输入密码,也可以把密码输入到任意文件中作为参数传递给./bomb,例如./bomb passwords.txt 在动手实验之前需要仔细阅读实验说明,其中重点阅读Hints的章节,这里提供一些提示 gdb, gdb是一个命令行...
http://csapp.cs.cmu.edu/3e/README-bomblab 大致意思是运行一个二进制文件bomb,它包括六个"阶段(phase)",每个阶段要求学生通过 stdin 输入一个特定的字符串。如果输入了预期的字符串,那么该阶段被"拆除",进入下一个阶段,直到所有炸弹被成功"拆除"。否则,炸弹就会"爆炸",打印出"BOOM!!!" ...
CSAPP bomblab解析 本文分析较为粗糙,仅作为思考大纲供参考。 0.pre 此lab主要包含两个文件。一是二进制bomb文件,二是bomb.c文件。我的理解下,二进制bomb文件是bomb.c文件与其他未给出的文件经过编译系统得到。而bomb.c文件提供了整个程序的大致执行流程,我们可以通过阅读函数名以及注释了解到程序主体为6个显性...
Lab分析 Bomblab主要是希望我们通过使用基本的逆向工程的手段,通过已有的bomb.c的主函数程序的提示,来获取每个phase的密钥,要注意的是,在CMU的课程中,炸弹被触发一次就会扣掉一半的分,在self-study版本中则没有这种记分机制,练习者也应该学会使用gdb,来让自己尽可能少的避免炸弹的爆炸。 Lab可以在csapp.cs.cmu.edu...
首先查看Bomb文件夹中的bomb.c可以发现,我们一共要拆六个炸弹,而每一个炸弹大概都是如下的形式: input=read_line();/* Get input*/phase_1(input);/* Run the phase*/phase_defused();/* Drat! They figured it out!* Let me know how they did it. */printf("Phase 1 defused. How about the ...
401056:74 05 je 40105d <phase_4+0x51> #如果相等,则跳转至0x40105d,否则下一条指令引爆炸弹,说明第二个字符为0 401058:e8 dd 03 00 00 callq 40143a <explode_bomb> 40105d:48 83 c4 18 add $0x18,%rsp 401061:c3 retq callq 400bf0 <__isoc99_sscanf@plt>后phase_4的帧如下: ...
首先,我们下载了lab的压缩包后,发现里面有一个c文件bomb.c和一个二进制文件bomb。 c文件里面并没有东西,它包含了phases.h的头尾文件,但是我们不能看到具体内容。我们可以看到一些phase文件,其实是要在bomb的反汇编文件中解决在phase段会引发的炸弹。(由于链接的作用,因此bomb中包含了phase.h) ...