2019-2020-1 20175330 《信息安全系统设计基础》第三周学习总结

# 2019-2020-1 20175330 《信息安全系统设计基础》第三周学习总结
目录
* 一、教材学习内容总结
* 二、教材学习中的问题和解决过程
* 三、心得体会
### 一,教材学习内容总结
我将本周的东西做了一个脑图

其中的数据

操作数可分为三种类型:

①、立即数(immediate):书写方式是符号后跟一个标准C表示的整数,比如52,$0x1F等等。任何能放进一个32位的字里面的数值都可以做立即数。

②、寄存器(register):它表示某个寄存器的内容,可以是8个32位寄存器中的一个(比如%eax),也可以是8个16位寄存器中的一个(比如%ax),还可以是8个单字节寄存器寄存器(比如%al)。

③、存储器(memory):它会根据计算出来的地址(通常称为有效地址)来访问某个存储器位置。我们将存储器看成一个很大的字节数组,用符号Mb[Addr] 表示对存储在存储器中从地址 Addr 开始的 b 个字节值的引用。

 一、Imm 是立即偏移数

 二、Eb 是基址寄存器

 三、Ei 是变址寄存器

s 是比例因子,必须是 1、2、4或8

  然后有效地址计算公式为: Imm + R[Eb]+R[Ei]s。比如对于2(%esp,%eax,4)这个操作数来讲,它代表的是内存地址为2+%esp+4%eax的存储器区域的值。

 

 

缓冲区溢出

原理

通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,造成程序崩溃或使程序转而执行其它指令,以达到攻击的目的。造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数。

漏洞

缓冲区溢出攻击的目的在于扰乱具有某些特权运行的程序的功能,这样可以使得攻击者取得程序的控制权,如果该程序具有足够的权限,那么整个主机就被控制了。一般而言,攻击者攻击root程序,然后执行类似“exec(sh)”的执行代码来获得root权限的shell。为了达到这个目的,攻击者必须达到如下的两个目标:
1. 在程序的地址空间里安排适当的代码。
2. 通过适当的初始化寄存器和内存,让程序跳转到入侵者安排的地址空间执行。
可以根据这两个目标来对缓冲区溢出攻击进行分类。 
### 二,教材学习中的问题和解决过程

 

原文地址:https://www.cnblogs.com/waaaaa/p/11667861.html