1. 程式人生 > >一個exe可執行檔案的生與死(執行原理)(轉載)

一個exe可執行檔案的生與死(執行原理)(轉載)

這篇文章講一個EXE檔案從載入執行到結束的整個流程,感覺寫的不錯, 記錄共享下。

下面列的只是程式執行時的大概流程,詳見附件。

1、ShellExplorer.exe)呼叫CreateProcess函式啟用exe程式

2、系統建立一個程序核心物件,引用計數置為1

3、系統為程序建立一個4GB的程序虛擬地址空間

4、PE裝載器把exe的程式碼對映到地址空間,並查詢Import Table引入相關

的動態連結庫(DLLs

5、系統為程序建立一個主執行緒,執行緒得到CPU後,把CS:IP指向.text節中

的程式進入點(OEP),此處是一條JMP指令,它跳到XXXCRTStartup

函式處執行

6、這裡完成c/c++執行期庫的一些初始化設定,包括c++建構函式的呼叫

全域性變數,靜態變數的初始化

7、呼叫WinMain/main函式,進入主函式

8、註冊視窗類,建立視窗,顯示視窗,更新視窗,進入訊息迴圈

9、視窗關閉,迴圈退出,返回到C/C++執行期庫

10、完成一些清理工作

11、最後是ExitProcess退出程序

posted on 2014-04-05 11:48 Richard Wei 閱讀(1350) 評論(0)  編輯 收藏 引用 所屬分類: windows desktop