當前位置:
首頁 > 知識 > 函數調用反彙編

函數調用反彙編

windows堆棧:向低地址擴展。

堆棧平衡:

windows堆棧就是一塊普通的內存,主要用來存儲一些臨時數據和參數等,可以想像成一個公共的箱子,大家都會用,每個人用完都要使它和用之前一樣。

main函數中的調用:

0100176E 6A 02 push 2

01001770 6A 01 push 1 【函數參數】

01001772 E8 A7 F8 FF FF call FounC1 (0100101Eh) 【調用函數】

01001777 83 C4 08 add esp,8 【平衡堆棧】

  • 1
  • 2
  • 3
  • 4

彙編中函數實現體:

008316A0 push ebp

008316A1 mov ebp,esp

【提升堆棧】為函數執行提供空間

008316A3 sub esp,0C0h

008316A9 push ebx

008316AA push esi

008316AB push edi

【保護現場】

函數在執行的時候可能會用到寄存器,但是寄存器中的值可能還會用到,所以要保存寄存器中的值

008316AC lea edi,[ebp-0C0h]

008316B2 mov ecx,30h

008316B7 mov eax,0CCCCCCCCh

008316BC rep stos dword ptr es:[edi]

【填充緩衝區】

008316BE mov eax,dword ptr [x]

008316C1 add eax,dword ptr [y]

【函數功能】

008316C4 pop edi

008316C5 pop esi

008316C6 pop ebx

【恢復現場】

008316C7 mov esp,ebp

008316C9 pop ebp

【降低堆棧,恢復棧底】

008316CA ret

【返回:回到函數調用處】

函數調用反彙編

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

教你繪製通透質感的按鈕
程序員成熟的標誌,八個點概括!

TAG:程序員小新人學習 |