这是CSAPP的第二个实验,主要让我们理解代码的机器级表示,最重要的是理解每个寄存器的作用以及如何使用这些寄存器。本次的实验内容有点晦涩难懂,对于这些内容多看下习惯就好了。 本次实验中的bomb文件中共有7个炸弹问题(6个显式的和1个隐藏的),每条问题只有输入正确的答案才能进入下一 ...
零碎记事 久违的,昨天打了一整天的游戏,玩的LOL,就只玩刀妹这个英雄,本人绝活。 不得不说,刀妹这个英雄设计得太好玩了,可以说是将游戏中的博弈部分放大到了极致。这个容错率极低的英雄,每一步都要操作谨慎,但高操作带来的高收益,在我还没出现失误的时候,我的对手也在时刻警惕着我的动作。我Q上去,瞬间接近对方,他以为我要打了,赶紧回头扔技能,我却往回Q走跑了,又以为我不想打的时候,我又突然以两个小兵作为 ...
2020-12-13 22:20 0 463 推荐指数:
这是CSAPP的第二个实验,主要让我们理解代码的机器级表示,最重要的是理解每个寄存器的作用以及如何使用这些寄存器。本次的实验内容有点晦涩难懂,对于这些内容多看下习惯就好了。 本次实验中的bomb文件中共有7个炸弹问题(6个显式的和1个隐藏的),每条问题只有输入正确的答案才能进入下一 ...
实验说明 《深入理解计算机系统》是卡内基梅隆大学计算机专业的计算机体系课程的标配教材,可以在B站看其配套网课(链接)。课程由书的作者两个人共同执教,比较适合有C语言的基础的同学作为计算机体系构建的课程。但是,仅仅看书收获还是有限的,所以为了加强Coding,而不是纸上谈兵,还需要做这本书配套 ...
原文地址:https://billc.io/2019/04/csapp-bomblab/ 写在前面 CS:APP是这学期的一门硬核课程,应该是目前接触到最底层的课程了。学校的教学也是尝试着尽量和CMU同步,课件和习题都直接照搬原版。包括现在着手的第二个实验室Bomb Lab。这个lab很有 ...
Computer Systems A Programmer's perspective 关于进程与线程的相关知识 进程 像hello这样的程序在现代系统上运行时,操作系统会提供一种假象,就好像系统上只有这个程序在运行。程序看上去是独占地使用处理器、主存和I/O设备。处理器看上去就 ...
实验的目的是 填写 bits.c里面的函数,使其按照规定的要求(比如只能使用有限且规定的操作符和数据类型,不能使用控制语句等等)实现函数的功能。 同时 dlc文件是用来检测 bits.c 里面的函数是否 是按照要求编写的,有没有使用非法的数据类型等。 使用方法:./dlc bits.c 检测 ...
这是CSAPP的第三个实验,主要让我们熟悉GDB的使用,理解程序栈帧的结构和缓冲区溢出的原理。 实验目的 本实验的目的在于加深对IA-32函数调用规则和栈结构的具体理解。实验的主要内容是对一个可执行程序“bufbomb”实施一系列缓冲区溢出攻击(buffer overflow ...
这个实验主要是熟悉栈,和了解数据缓存区溢出的问题。 数据缓存区溢出:程序每次调用函数时,会把当前的eip指针保存在栈里面,作为被调用函数返回时的程序指针。在被调用程序里面,栈是向下增长的。所有局部变量都存储在栈里面(静态局部变量除外)。假设有一个字符串变量str,在str读取数据时,如果缓存区 ...
主要涉及计算机中数的表示法: (1)整数: two's complement,即补码表示法 假设用N位bit表示整数w: 其中最左边一位为符号位,符号位为0,表示正数,为1表示负数。 (2)浮点数: 浮点数采用类似科学计数法的方式 以float为例:编码分为三部分:首位为符号位 ...