csapp:Lab2-bomb! 0. 环境要求 关于环境已经在lab1里配置过了这里要记得安装 gdb 安装命令 sudo yum install gdb 实验的下载地址 gbd的命令地址 这里我们需要使用 o… 阅读全文 CSAPP:Lab1 -DataLab 超详解 写在前面 之前考研的时候csapp的书有刷过5,6遍,所以对书本知识还算比较了解。恰逢最近在学c++的...
这部分挺有意思,实现iaddq指令,将立即数与寄存器相加,下面是我写的指令执行过程,用HCL代码实现即可 根据这个思路,对照书中有关的描述块改进即可,想要更详细的话我觉得这篇文章CSAPP | Lab4-Architecture Lab 深入解析 - 知乎 (zhihu.com)会更好。 注意 Part B中,运行下面这条命令后出现问题: unix> make VERS...
wget https://gitee.com/lin-xi-269/csapplab/raw/origin/installAll.sh # 下载脚本 bash installAll.sh # 运行脚本 运行完 这个脚本之后,会在 当前目录下创建一个 csapp 文件夹,里面包含 8个 lab 按照 PDF 开始做即可以开始做了。 Docker 一键环境配置(支持大多数主流操作系统) 首先是安装 docker 下面是...
这个Lab 分为三个任务,第一个任务需要实现这个代理服务,第二个任务支持处理并发请求,第三个任务需要实现缓存。 Part I: Implementing a sequential web proxy 这个部分其实很好写,很多部分都可以照抄下发文件中的tiny服务器的内容。 main函数 main函数完全复制了tiny程序的main。 大概过程就是使用一个while循环,不停...
CSAPP最后一个lab:proxylab Good luck and have fun! 建议 至少做了11章和12章的一部分的家庭作业再来做会比较轻松 有一定的网络编程基础最好 环境配置 下面这条语句会下载最新版的lab资料和PDF中英(我当时做的版本)对照。wget https://gitee.com/lin-xi-269/csapplab/raw/origin/lab8proxylab/install.sh…...
《深入理解计算机系统》一书是计算机系统入门的极好选择,从其第三版的豆瓣评分 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个链表头指针。