c語言中的堆棧分析__c語言

來源:互聯網
上載者:User
0x00 過程

我們可以看出:首先是壓參數,然後壓返回地址,然後壓EBP,然後堆棧提升,產生緩衝區,然後壓寄存器保護現場。
然後迴圈填寫cc。然後靠ebp的移動實現局部變數在緩衝區裡的分配。

/*基於緩衝區溢位的hello world  2016年12月24日22:01:17*/#include <stdio.h>void hello(void){    printf("hello world");}void fun(){  int  a[5]={1,2,3,4,5};  a[6]=(int)hello;}int main (void){ fun();    return  0;}
0x01

溢出分析:如下,既然是輸出了helloworld證明了什麼。證明了一點:那就是hello函數的地址壓給了eip。首先來說:我們執行了溢出,但是編譯器應該是不知道,所以

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.