这个Lab 分为三个任务,第一个任务需要实现这个代理服务,第二个任务支持处理并发请求,第三个任务需要实现缓存。 Part I: Implementing a sequential web proxy 这个部分其实很好写,很多部分都可以照抄下发文件中的tiny服务器的内容。 main函数 main函数完全复制了tiny程序的main。 大概过程就是使用一个while循环,不停...
csapp:Lab2-bomb! 0. 环境要求 关于环境已经在lab1里配置过了这里要记得安装 gdb 安装命令 sudo yum install gdb 实验的下载地址 gbd的命令地址 这里我们需要使用 o… 阅读全文 CSAPP:Lab1 -DataLab 超详解 写在前面 之前考研的时候csapp的书有刷过5,6遍,所以对书本知识还算比较了解。恰逢最近在学c++的...
CSAPP一键环境配置、完成8个lab总结 经历了接近2个月的第二次学习 CSAPP,我做完了 CSAPP 的8个lab。这篇文章是我记录做完这些 lab 总结, 同时也希望能够给大家带来一些便利。因此每一个 lab 我都记录了具体过程, 提供很多了… 林夕丶发表于CSAPP... CSAPP:Lab1 -DataLab 超详解 周小伦发表于CSAPP...打开知...
《深入理解计算机系统》一书是计算机系统入门的极好选择,从其第三版的豆瓣评分 9.8分 可见一斑。该书的起源是卡耐基梅龙大学 计算机系统入门课【Introduction to Computer System】的讲义,与其配套的还有发布在其官网上的实验,这也正是【CSAPP-LAB】这个系列所要【DIY】的。
和我们在bomb.c中看到的是一样的,main函数内每次先调用read_line,然后将返回的地址传递给phase_n函数,如果输入的不正确那么就会执行爆炸函数。所以当然就顺着main函数执行轨迹一个个来排雷~ Phase_1 先查看phase_1反汇编代码: 0000000000400ee0 <phase_1>: ...
理论上通过阅读汇编代码就可以找到答案,前3题或许可以,后边的题目就有点难度了。熟练使用gdb也是这个lab很重要的一个目的。 官方提供了gdb常用命令手册:http://csapp.cs.cmu.edu/3e/docs/gdbnotes-x86-64.pdf 下面开始“拆弹“。 首先需要将bomb二进制文件反汇编,得到汇编代码。下面的命令将bomb反汇编并保存在fi...
lab简介 这个lab中包含两个64位的可执行二进制文件。一个可以被代码注入 code injection攻击,一个可以被面向返回编程 return-oriented programming攻击。我们需要利用这些弱点来攻击它,改变其运行行为。 这个lab的主要目的是帮助我们了解栈的规则和了解buffer overflow的危险。
今天的报告是malloc lab,要求我们自己写一个动态内存分配程序,完成malloc、free等功能。由于需要提高内存的使用率与操作效率,我选择分离的空闲链表来管理内存块。数据结构上就是几个双向链表,不是很困难。实验要求不能使用数组,这一点真是麻烦,害得我手动定义了16个链表头指针。
这是CSAPP的第6个实验,本实验将帮助我们了解缓存对C语言性能的影响。而且,这个实验比前几个难度都加大了,做实验前建议先去看24张图7000字详解计算机中的高速缓存,理解下Cache的基本原理。 1. 实验目的 本次实验室由两部分组成。第一部分是要模拟Cahce的行为,理解Cache的原理。第二部分将优化一个小的矩阵...
CSAPP lab1 datalab-handout 操作数 这是一个关于机器级的整数、浮点数表示和位运算的实验。要求用给定的操作符、尽可能少的操作数去实现对应的函数功能。 完整的实验包:链接: https://pan.baidu.com/s/1xUBi3XDlidPQFNexbjXoLw 密码: 2333 以下是全部函数的代码:...