计算机系统基础
文章平均质量分 90
Ceeeeen
玩最重要
展开
-
【计算机系统基础05】Lab3数据溢出
Fizz的起始地址已在上图标出,ebp+4为栈帧返回地址,道理与somke类似,由于参数地址为旧EBP+4+8,我们需要在下方额外添加8个字节以作为函数参数,其中前四个字节可以随意更改,后四个字节为cookie的地址,且采用小端方式。由于test的栈空间不能破坏,我们在buf缓冲区的对应位置存回test的esp,返回地址存放在buf缓冲区首地址,攻击代码为修改eax的值为cookie并重新回到test。这些字节的内容可以随意更改,接下来的位置属于溢出的部分,它可以覆盖EBP的值。原创 2023-04-13 07:30:00 · 1686 阅读 · 0 评论 -
【计算机系统基础04】Lab2拆弹实验
由、,0 和输入的第一个数字比较,如果不相等就引爆炸弹,所以我们推知第一个要输入的数字应该是 0,同理,和可得,输入的第二个数字是 1,又根据到这四行,发现第三个数为前两个数相加。下面一共给出了两个明码,打印其内容得。不过根本不需要去看 fun4 的具体内容,因为第一个数的范围太小了,直接从 13 开始试,很快便得出了答案,为 11 18,进入下一关。分析可知,我们需要输入两个数,第一个数小于 14,第二个数是确定的,为 18,该程序为一个递归。原创 2023-04-11 08:58:34 · 1636 阅读 · 0 评论 -
【计算机系统基础02】二进制,八进制,十进制,十六进制的表示与转换
计算机内二进制可以表示的类型一般有两种,指令和数据。指令用于识别、处理数据,但指令和数据本质上都是一串二进制序列。其中,数据的类型分为数值数据和非数值数据。数值数据可比较大小,分为整数(定点数)和实数(浮点数),而定点数有分为无符号整数和带符号整数两种。所以数值数据一共有四小类,这四类数据编码方式还是不同的。而非数值数据是一个没有大小之分的位串,主要用于表示字符数据和逻辑数据在计算机内部,数值数据的表示方法共有两大类,一种是直接用二进制表示,一种是采用二进制编码的十进制数(BCD)表示。原创 2023-04-10 22:58:08 · 2677 阅读 · 3 评论 -
【计算机系统基础03】Lab1数据表示
解释:uf&0x7fffffff 最高位置0,如果结果大于0x7f800000,那么x的阶码全都为1,但是尾数不全为0,也就是x是NAN,返回uf。解释:x先乘三,如果符号位和末位都是1,那就是负数除2后有小数部分,是朝小取整,需要加一,否则直接处二取整。解释:如果符号位为1,那就减1再取反,也可以取反再加1,如果符号位为0,那绝对值就是x本身。解释:一直对半异或,最后最高位为1则x里有奇数个1,然后右移再和0x1和取,得到1或0。解释:如果x和y的符号位不同且x和相减结果的符号位也不同,那么返回0。原创 2023-04-09 20:25:09 · 866 阅读 · 0 评论 -
【计算机系统基础01】冯·诺依曼结构及其主要思想
冯·诺依曼结构的主要思想:1、计算机应由运算器、控制器、存储器、输入输出设备五个基本部件组成存储器不仅存放数据,而且还可以存放指令,形式上两者没有区别(都是01序列),但计算机应能区分数据还是指令控制器应能自动取出指令来执行运算器应能进行加/减/乘/除四种基本运算,并且能进行一些逻辑运算和附加运算操作人员可通过输入输出设备和主机进行通信3、内部以二进制表示指令和数据(ENIAC是十进制表示指令和数据,而IAS计算机采用的是二进制),每条指令由操作码和地址码两部分组成。.........原创 2022-08-31 23:20:02 · 8159 阅读 · 0 评论