小白学安全第二十五篇之寄存器篇

缓冲区溢出,时常听大佬们提到,给人以高深莫测的感觉,让刚入门的小白只能望大佬兴叹。

   缓冲区溢出(bufferoverflow),是针对程序设计缺陷,向程序输入缓冲区写入使之溢出的内容(通常是超过缓冲区能保存的最大数据量的数据),从而破坏程序运行、趁著中断之际并获取程序乃至系统的控制权。

什么意思呢,让人摸不着头脑,算了,放弃吧。少年,坚持一下,从此文开始,通过三期内容,我们一起一步一步的揭开缓冲区溢出的神秘面纱吧:

缓冲区溢出之寄存器篇;

缓冲区溢出之堆栈原理;

缓冲区溢出之漏洞原理。

【说明】

请重点关注文中加粗、下划线内容,其它内容了解即可。

【正文】

寄存器(Register)是CPU内部用来存放数据的一些小型存储区域。寄存器主要分成4类:

通用寄存器(8个)

段寄存器(6个)

程序状态与控制寄存器(1个)

指令指针寄存器(1个)

接下来分别介绍一下这4类的作用。

通用寄存器。主要用于传送和暂存数据,也可参与算术逻辑运算,保存运算结果。32位通用寄存器主要包括累加器(EAX)、基址寄存器(EBX)、计数器(ECX)、数据存储器(EDX)、扩展基址指针寄存器(EBP)、源变址寄存器(ESI)、目的变址寄存器(EDI)、栈指针寄存器(ESP)。

前面4个寄存器(累加器(EAX)、基址寄存器(EBX)、计数器(ECX)、数据存储器(EDX))主要用于算术运算;后面4个寄存器(扩展基址指针寄存器(EBP)、源变址寄存器(ESI)、目的变址寄存器(EDI)、栈指针寄存器(ESP))主要用于保存内存地址的指针。

段寄存器。段是一种内存保护技术,它把内存划分为多个区段,并为每个区段赋予起始地址、范围、访问权限等,以保护内存。段寄存器主要包括CS代码段寄存器、SS栈段寄存器、DS数据段寄存器、ES附加(数据)段寄存器、FS数据段寄存器、GS数据段寄存器。

程序状态与控制寄存器。EFLAGS共计32位,每1位的值为0或1,代表off或on,我们前期只需关注ZF(零标志)、OF(溢出标志)、CF(进位标志)。

指令指针寄存器(EIP)。程序运行时,EIP会存放程序执行的下一命令的地址,告诉CPU接下来要做什么。

Ok,到这里,我们需要了解的寄存器知识就差不多了,在下一篇“缓冲区溢出之堆栈原理”中,将带大家学习堆栈原理,其中就会用到寄存器的部分知识。

未完待续…

未经允许不得转载(声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:net-net@foxmail.com进行举报,并提供相关证据,工作人员会在10个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。):策信智库资讯网 » 小白学安全第二十五篇之寄存器篇

赞 (0)