反彙編版 記憶體版棧結構

2021-10-13 12:56:40 字數 633 閱讀 5287

正常下:

ebp:為上一層函式棧底

ebp+4:進入call下一條執行指令位址,也可以叫做返回位址

ebp+8:從左往右看的話算是第乙個引數 (如果這個函式是有引數的話)

ebp+0c:第二引數 (如果這個函式是有引數的話)

ebp+10:第三個引數 (如果這個函式是有引數的話)

ebp-***:一般為區域性變數

執行函式的流程:

1.傳入引數

2.儲存函式下一條位址做返回位址

3.儲存當前函式的棧底

4.申請空間cccccccc

5.儲存暫存器(防止等下當前函式開始實際執行,使用了暫存器,而打亂上一層暫存器原本數值)

6.開始該函式要實現的事情(前面鋪墊都是為了這一步)

7.函式實現完成後,恢復暫存器,

8.釋放申請空間

9.恢復原本棧底

10.把返回位址給eip

11.內平棧或外平棧(由呼叫約定決定)

C反彙編例項(詳細註解版)(一)

呵,好久沒寫 csdn 文章了,來湊個熱鬧。最近我閱讀了楚狂人 wowocock 寫的 天書夜讀 試讀本,對 c反彙編感觸頗深,書中有一例演算法反彙編,其對彙編的閱讀確實富有挑戰,而該書中也未詳解,在此,我謹將此例詳細分析如下,幫助大家更好理解 c反彙編 若有任何錯誤,請大家批評指正!該例的要求是求...

C反彙編例項(詳細註解版)(三)

上次我分析了一下,debug 模式下反彙編後的演算法部分 天才的您可能覺得不算糟,想再搞點花樣,那麼本文就能滿足你的需求。天書夜讀上其實還貼出來了 release 模式下的 它經過 vc編譯器 o2的優化,我初次看到反彙編 時,還真汗了一把。不過定下心來細細品位還是可以看懂的,儘管正如原書所說,連語...

C反彙編例項(詳細註解版)(三)

上次我分析了一下,debug 模式下反彙編後的演算法部分 天才的您可能覺得不算糟,想再搞點花樣,那麼本文就能滿足你的需求。天書夜讀上其實還貼出來了 release 模式下的 它經過 vc編譯器 o2的優化,我初次看到反彙編 時,還真汗了一把。不過定下心來細細品位還是可以看懂的,儘管正如原書所說,連語...