CSAPP读书笔记
文章平均质量分 72
mikucyy
这个作者很懒,什么都没留下…
展开
-
《深入理解计算机系统》-链接学习笔记
以前对链接的了解少之又少,只知道在汇编之后经过链接就形成可执行文件,而很多的链接错误又很难看懂,正好借着这一章学习学习首先看一个示例程序// main.cint sum(int* a, int n);int array[2] = {1, 2};int main(){ int val = sum(array, 2); return val;}// sum.cint sum(int *a, int n){ int i, s = 0; for (i =原创 2021-03-04 19:26:31 · 146 阅读 · 1 评论 -
《深入理解计算机系统》-AttackLab学习笔记
这个实验在第三章学完后就可以做了,内容主要就是3.10.3和3.10.4的部分,主要目标是熟悉两种攻击程序的方式:代码注入(Code Injection,CI)和面向返回编程(Return Oriented Programming,ROP)Let’s Hack!实验说明首先还是提醒一下,每个人的程序可能是不一样的,所以答案只是参考,但方法是通用的目标程序:ctarget和rtarget,分别是在CI阶段和ROP阶段存在漏洞的程序。使用-q选项来避免将分数发到服务器,否则会出现illegal ho原创 2021-02-21 12:40:48 · 626 阅读 · 0 评论 -
《深入理解计算机系统》--BombLab学习笔记(含隐藏阶段)
前言在皓哥的鼓励下,磕磕绊绊断断续续终于做完了BombLab,这个实验确实很有趣而且对我帮助很大,做完也非常的有成就感(HGNB)????,因此决定写一篇博客记录一下学习的过程首先作几点说明1、由于每个学生的Bomb是随机的,而我是从网上其他人的github下载的lab,所以有可能你的Bomb与我并不一样,导致每个阶段的答案可能是不一样的,但是方法应该还是可以参考的2、这个实验对提升汇编语言的理解能力以及自己调试代码的能力真的有很大帮助,所以强烈建议你自己独立思考并完成这个实验,即使多花些时间我觉得原创 2021-02-15 02:02:33 · 2592 阅读 · 2 评论 -
关于C++指针的加减法
CSAPP第三章看到3.8了,这一节在讲关于数据的表示,其中提到了指针的运算,本来自己只是想实践一下加深点印象,没想到小小的测试程序还又学到了一些新知识,觉得有必要记录一下:1、首先是正题,关于指针的加减法,所得结果与指针所指的类型有关。例如指针指向int,那么加减都以4个字节为单位,如果指向char,那么加减都以1个字节为单位,下面是测试代码及运行结果的截图。可见整型指针地址增加了4,字符型指针地址增加了12、打印字符指针的地址时,如果也直接使用cout << b会打印出a和空字符,因为原创 2021-02-12 14:27:35 · 1617 阅读 · 0 评论 -
获取汇编指令的编码字节长度
皓哥笔直的背影,就是我前进的方向。(——想说这句话真的好久了)最近在皓哥的激励下也在慢慢啃CSAPP,今天看到第三章程序的机器级表示,里面有一道习题3.11是这样的:常常可以看见以下形式的汇编代码行:xorq %rdx, %rdx但是在产生这段汇编代码的C代码中,并没有出现EXCLLUSIVE-OR操作A. 解释这条特殊的EXCLUSIVE-OR指令的效果,它实现了什么有用的操作B. 更直接地表达这个操作的汇编代码是什么?C. 比较同样一个操作的两种不同实现的编码字节长度前两问都比较简单,原创 2021-01-28 16:51:28 · 2694 阅读 · 7 评论