首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
CSAPP-bomblab
】的更多相关文章
CSAPP 之 BombLab 详解
前言 本篇博客将会展示 CSAPP 之 BombLab 的拆弹过程,粉碎 Dr.Evil 的邪恶阴谋.Dr.Evil 的替身,杀手皇后,总共设置了 6 个炸弹,每个炸弹对应一串字符串,如果字符串错误,炸弹就会被引爆,如下图所示: 字符串的长度未知,所以暴力破解是不可取的,也就是说这个实验就是要逼着拆弹小分队将 bomb 可执行文件反汇编,根据汇编代码推测出每个炸弹对应的字符串.在终端输入 objdump -d bomb > bomb.asm ,就可以将汇编代码写入 bomb.asm 文件中,方便…
CSAPP:bomblab
BOMBLAB实验总结 CSAPP实验BOMB,很头疼,看不懂,勉强做完了. 答案是这样的: Border relations with Canada have never been better. 1 2 4 8 16 32 2 707 7 0 9?>567 4 3 2 1 6 5 在bomb文件夹新建一个文件input.txt,再在gdb下运行如下指令: run < input.txt 就可以不用自己输入跑实验了. 做实验时记得一定要加一句: b explode_bomb 防止踩雷~ ph…
终于要开始做大名鼎鼎的BombLab了!
首先是一些准备工作 lab下载地址:http://csapp.cs.cmu.edu/3e/labs.html 第二个的Bomblab的 self-study handout就是 在做这个lab前,首先要确定使用的调试工具.我试过gdbtui(难用,显示有问题)和ddd(难用+丑),最后选择了cgdb. cgdb最新版本增加了显示汇编代码的功能,和bomblab搭配的很棒. 目前(2017/11/21),apt-get源下载到的cgdb仍然不是最新版本,需要到官网下载: https://cgdb.…
在Ubuntu下使用 csapp.h 和 csapp.c
它山之石可以攻玉. 对于<深入理解计算机系统>这本神人写就的神书, 我等凡人就不评论什么啦. 这本书的 第二,三 部分, 真的真的对我理解操作系统有很大的帮助. (当然, 如果你不看第一部分, 是很难完全看懂第二,三部分的吧) . 第一部分的的确确有些艰深, 从剖析汇编码, 窥探机器码, 到 理论上造CPU, 虽然作者(布赖恩特)讲的十分清楚, 但是仍然无法弥补我智商上的先天缺陷(俗称:脑残). 书中的内容真的是很丰富. 我觉得也正是书中的内容太多, 知识点太多, 所以很难完全读懂. 因为,…
CSAPP读书随笔之一:为什么汇编器会将call指令中的引用的初始值设置为-4
CSAPP,即<深入理解计算机系统:程序员视角>第三版,是一本好书,但读起来确需要具备相当的基本功.而且,有的表述(中译文)还不太直白. 比如,第463页提到,(对于32位系统)为什么汇编器会将call指令中的引用的初始值设置为-4.其后解释语焉不详.结合文中对代码计算公式的展开: *refptr = (unsigned) (ADDR(r.symbol) + *refptr - refaddr) = (unsigned) (0x80483c8 + (-4) - 0x804…
深入理解计算机中的 csapp.h和csapp.c
csapp.h其实就是一堆头文件的打包,在http://csapp.cs.cmu.edu/public/code.html 这里可以下载.这是<深入理解计算机系统>配套网站. 在头文件的#end if前面加上一句#include “csapp.c”,因为那个头文件要把csapp.c文件包含了进去. linux没有自带csapp.h,所以要自己导入,放到 /usr/include的文件夹里面. 还有就是因为csapp.c中有关于线程的头文件,在用gcc的时候最后要加上-lpthread 如 #…
CSAPP(前言)
很久之前就听过有过CSAPP这本书的传闻了,今天终于决定上手这本神作:既然是神作,就要仔细拜读一下,今天看了一下前言部分还真的令人耳目一新,单单是前言部分就让我学习到几个新的知识点: 1.c和Java:指针,显式的动态内存分配与格式化IO 2.经典书记:K&R (待收藏) 3.x - y < 0 与 x < y,通常采用后者而很少使用前者,主要原因如下: (1)当x的值较大时而y的值较小且为负数时,x - y 实际上就成为了x + |y|,而x + |y|的结果是有可能大于x数据类型所…
CSAPP缓冲区溢出攻击实验(上)
CSAPP缓冲区溢出攻击实验(上) 下载实验工具.最新的讲义在这. 网上能找到的实验材料有些旧了,有的地方跟最新的handout对不上.只是没有关系,大体上仅仅是程序名(sendstring)或者參数名(bufbomb -t)的差异,不影响我们的实验. 1.实验工具 1.1 makecookie 后面实验中,五次"攻击"中有四次都是使你的cookie出如今它原本不存在的位置,所以我们首先要为自己产生一个cookie. 实验工具中的makecookie就是生成cookie用的.參数是你的…
读完了csapp(中文名:深入理解计算机系统)
上个星期最终把csapp看完了. 我买的是中文版的,由于除了貌似评价不错以外,由于涉及到些自己不了解的底层东西,怕是看英文会云里雾里.如今看来,大概不能算是个长处,可是的确可以加快我的看书速度,否则一星期还真不大可能把这书搞定. 对csapp慕名已久,主要在于据说这本书尽量的做到相对实用,不去讲那些和实际编程没多大关系的计算机原理(毕竟是著名计算机院校里面最偏软件的cmu的作品),重点很得当,像我这样的没有本科科班出生又不想去死读些不知道以后有没实用的东西的人来说,最是适合了.感兴趣的东西就行再…
CSAPP Lab2: Binary Bomb
著名的CSAPP实验:二进制炸弹 就是通过gdb和反汇编猜测程序意图,共有6关和一个隐藏关卡 只有输入正确的字符串才能过关,否则会程序会bomb终止运行 隐藏关卡需要输入特定字符串方会开启 实验材料下载地址:http://csapp.cs.cmu.edu/2e/labs.html 下面通关解法: 反汇编: objdump -d bomb > bomb_assembly_32.S Phase 1: 打开bomb_assembly_32.S,定位到<phase_1>函数,可以看到以下代码:…