
缓冲区溢出
文章平均质量分 61
sysprogram
这个作者很懒,什么都没留下…
展开
-
函数在内存中的具体执行
如果程序要调用某个函数,那么计算机就会自动将函数返回后要执行的指令地址先压入栈里,等待函数返回以后再从中取出,跳到该处继续执行。 #include void TestFunction(){ int i = 10; return;}void main(){ TestFunction(); return;} EAX = CCCCCCCC EBX = 7FFD5000 ECX = 00000000 EDX = 00591030 ESI = 00000000 EDI = 0012FF48 EIP = 0040D46原创 2010-08-04 15:24:00 · 1451 阅读 · 0 评论 -
栈溢出的经典代码
<br />一个栈溢出的经典代码<br /> <br />#include <stdio.h><br />#include <string.h><br />void overflow(char* buf)<br />{<br /> char des[5]="";<br /> strcpy(des,buf);<br /> return;<br />}<br />void main()<br />{<br /> char longbuf[100]="aaaaaabbbbbccccc";<br /> overfl原创 2010-08-04 16:26:00 · 1954 阅读 · 0 评论 -
内存中栈的具体表现
<br />栈在内存中到底是如何表现的呢?我们来做一个实例调试一下。<br /> <br />代码如下:<br /> <br />#include <stdio.h><br />void main()<br />{<br /> _asm<br /> {<br /> push 0x12345678<br /> push 0x11112222 <br /> pop eax<br /> pop ebx<br /> }<br />}<br /> <br />按F9下一个断点,然后按F5进行调试。反汇编窗口如原创 2010-08-04 14:24:00 · 1180 阅读 · 0 评论 -
开始学习缓冲区溢出
缓冲区溢出分为栈溢出,堆溢出。原创 2010-06-09 12:15:00 · 1088 阅读 · 0 评论