原创 Out-of-Bounds Memory References and Buffer Overflow

2013-3-2 08:44 1450 10 11 分类: 消费电子

 

2.jpg
callee:
pushl  %edp                               save %edp on stack
movl   %esp, %edp
pushl  %ebx                                save %ebx
subl    $20, %esp
......
popl %ebx                                  restore  %ebx
popl  %edp                                 restore  %ebp
ret
 
1.if the stored value of %ebx is corrupted, then this registerwill not be restored properly, and so the caller will not be able to rely on the integrity of this register, even though it should be callee-saved.
2.If the stored value of %edp is corrupted, then this register will not be restored properly, and so the caller will not be able to reference its local variables or parameters properly.
3.If the stored value of the return address is corrupted, then the ret instruction will cause the program to jump to a totally unexecpted location
 
Stack of randomization has become standard practice In Linux systems. It is one of a larger class of techniques known as address-space layout randomization, or ASLR. With ASLR, different parts o the program, including program code, library code, stack, global variables, and heap data, are loaded into different regions of memory each time a program is run.
PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

1989tie_959541171 2013-3-2 19:53

如果有《深入理解计算机系统》 推荐第三章,感觉很好,这里就是从那里摘出来的,整理了一下。
相关推荐阅读
catch2000 2015-07-19 11:44
信号线小电阻的作用
在一块新的PCB上,测试系统能否正常运行的时候,发现系统上电后没有正常启动。  系统框图如下:   在上电的时刻,CPU A(GPIO电平2.6V)会向串口发送启动日志数据,CPU A启动后,...
catch2000 2015-07-05 17:04
协议设计中ACK机制的影响
在TCP/IP中,延时ACK和Nagle算法。  TCP为了同时处理成块数据(通常为512字节的用户数据)和交互数据(通常用户数据比较少,例如不大于10个字节),采用了延时ACK和Nagle算法...
catch2000 2015-05-23 15:48
话说物联网操作系统
最近好多家都宣布推出自己的物联网操作系统。   1. Google将要在Google I/O大会发布的Brillo; 2. 三星推出的Artik芯片搭载Mentor Graphics的...
catch2000 2015-03-31 23:52
不要采用异或来交换两个变量
在进行两个变量的时候,经常会看到有些书误人子弟的推荐使用异或的方式: 方式一 {   x = x ^ y;   y = x ^ y;   x = x ^ y; } 而不是...
catch2000 2014-10-09 07:28
为什么要测试先行
在产品的研发过程中,测试一项至关重要。不论是软件还是硬件。   软件的测试先行,在研发过程中,就做到质量的保证,因为在出现Bug的时候,容易定位Bug,而且即使是在客户端出现Bug,也能够...
catch2000 2014-10-09 07:26
C语言的面向对象编程(一)
一、前言 对于编程而言,重要的是解决问题的方式,而不是语言本身。面向对象与面向过程是解决问题和思考问题的方式。C语言常说是面向过程开发的语言,因为其缺少很多对于面向对象特性的支持。但,这并不影...
EE直播间
更多
我要评论
1
10
关闭 站长推荐上一条 /3 下一条