+-------------------------+----> 高位址關注: solaris 10的10大新變化| eip (上級函式返回位址) |
+-------------------------+
+--> | ebp (上級函式的ebp) | --+ <------當前函式a的ebp (即sfp框架指標)
| +-------------------------+ +-->偏移量a
| | local variables | |
| | .......... | --+ <------esp指向函式a新分配的區域性變數,區域性變數可以通過a的ebp-偏移量a訪問
| f +-------------------------+
| r | arg n(函式b的第n個引數) |
| a +-------------------------+
| m | arg .(函式b的第.個引數) |
| e +-------------------------+
| | arg 1(函式b的第1個引數) |
| o +-------------------------+
| f | arg 0(函式b的第0個引數) | --+ <------ b函式的引數可以由b的ebp+偏移量b訪問
| +-------------------------+ +--> 偏移量b
| a | eip (a函式的返回位址) | |
| +-------------------------+ --+
+--- | ebp (a函式的ebp) |<--+ <------ 當前函式b的ebp (即sfp框架指標)
+-------------------------+ |
| local variables | |
| .......... | | <------ esp指向函式b新分配的區域性變數
+-------------------------+ |
| arg n(函式c的第n個引數) | |
+-------------------------+ |
| arg .(函式c的第.個引數) | |
+-------------------------+ +--> frame of b
| arg 1(函式c的第1個引數) | |
+-------------------------+ |
| arg 0(函式c的第0個引數) | |
+-------------------------+ |
| eip (b函式的返回位址) | |
+-------------------------+ |
+--> | ebp (b函式的ebp) | --+ <------ 當前函式c的ebp (即sfp框架指標)
| +-------------------------+
| | local variables |
| | .......... | <------ esp指向函式c新分配的區域性變數
| +-------------------------+----> 低位址
frame of c
圖 1-1
3. 小結
sfp 棧框架指標
stack aligned 棧對齊
今後,將通過進一步的實驗,來深入了解這些概念。通過掌握這些概念,使在彙編級除錯程式產生的core dump、掌握c語言高階除錯技巧成為了可能。
關於Release版除法反彙編的小結
諸如a b a是變數,b是常量 這種帶常量的除法,可以被 數學上的 等價變換為 a 2 n 2 n b 的形式。由於b和n是常量,因此在編譯期間,編譯器會將 2 n b轉換成新的常量b 上式變為 a b 2 n 將原本除法表示式轉換為乘法和移位運算子 ps 除以2 n可以被編譯成右移n位 編譯器為什...
反彙編 迴圈
includeint main 00401010 55 push ebp 00401011 8bec mov ebp,esp 00401013 83ec 44 sub esp,44 00401016 53 push ebx 00401017 56 push esi 00401018 57 push ...
反彙編簡介
在傳統的軟體開發模型中,程式設計師使用編譯器 彙編器 鏈結器中的乙個或者幾個建立可執行程式,為了回溯程式設計過程,可以使用各種工具來撤銷彙編和編譯過程,這些工具就叫做反彙編器和反編譯器。反彙編器 以機器語言作為輸入,得到組合語言形式的輸出結果 反編譯器 以機器語言作為輸入,得到高階語言形式的輸出結果...