call stack and stack buffer overflow
生活随笔
收集整理的這篇文章主要介紹了
call stack and stack buffer overflow
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
http://en.wikipedia.org/wiki/Call_stack
http://en.wikipedia.org/wiki/Stack_buffer_overflow?
?
Stack_buffer_overflow里提到的frame pointer 的位置不一樣,不同的系統(tǒng)實現(xiàn)應該是不一樣的。
運行時的棧是從高地址向低地址分配的,堆是從低地址向高地址分配的,如:
?1int?main()?{
?2????int?a;
?3????int?b;
?4????int?*pc?=?new?int;
?5????int?*pd?=?new?int;
?6????printf("%x\n",?&a);//棧地址
?7????printf("%x\n",?&b);//棧地址
?8????printf("%x\n",?&pc);//棧地址
?9????printf("%x\n",?&pd);//棧地址
10????printf("%x\n",?pc);//堆地址
11????printf("%x\n",?pd);//堆地址
12????return?0;
13}
?結果類似是這樣的:
120fa58220fa4c
320fa40
420fa34
5354bb8
6354bf8
update Apr. 26, 2011:
apue 2nd?7.6. Memory Layout of a C Program:
The stack grows from higher-numbered addresses to lower-numbered addresses on this particular architecture(x86).
轉載于:https://www.cnblogs.com/lbsx/archive/2009/10/28/1591628.html
總結
以上是生活随笔為你收集整理的call stack and stack buffer overflow的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件工程课程复盘
- 下一篇: a critical review of