• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            這篇文章講一個EXE文件從加載運行到結(jié)束的整個流程,感覺寫的不錯, 記錄共享下。

            下面列的只是程序執(zhí)行時的大概流程,詳見附件。

            1、ShellExplorer.exe)調(diào)用CreateProcess函數(shù)激活exe程序

            2、系統(tǒng)創(chuàng)建一個進程內(nèi)核對象,引用計數(shù)置為1

            3、系統(tǒng)為進程創(chuàng)建一個4GB的進程虛擬地址空間

            4、PE裝載器把exe的代碼映射到地址空間,并查找Import Table引入相關(guān)

                   的動態(tài)鏈接庫(DLLs

            5、系統(tǒng)為進程創(chuàng)建一個主線程,線程得到CPU后,把CS:IP指向.text節(jié)中

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

               函數(shù)處執(zhí)行

            6、這里完成c/c++運行期庫的一些初始化設(shè)置,包括c++構(gòu)造函數(shù)的調(diào)用

                  全局變量,靜態(tài)變量的初始化

            7、調(diào)用WinMain/main函數(shù),進入主函數(shù)

            8、注冊窗口類,創(chuàng)建窗口,顯示窗口,更新窗口,進入消息循環(huán)

            9、窗口關(guān)閉,循環(huán)退出,返回到C/C++運行期庫

            10、完成一些清理工作

            11、最后是ExitProcess退出進程

            完整文檔: 一個exe可執(zhí)行文件的生與死.doc
             
                            一個exe可執(zhí)行文件的生與死.pdf
            posted on 2014-04-05 11:48 Richard Wei 閱讀(2495) 評論(0)  編輯 收藏 引用 所屬分類: windows desktop
            久久九九有精品国产23百花影院| 伊人久久大香线蕉AV色婷婷色 | 久久久久无码国产精品不卡| 久久精品三级视频| 一本色道久久HEZYO无码| 精品乱码久久久久久久| 久久夜色精品国产亚洲av| 久久精品免费大片国产大片| 看久久久久久a级毛片| 国内精品久久久久久久涩爱| 久久午夜伦鲁片免费无码| 久久久久女教师免费一区| 久久精品人成免费| 久久久久亚洲AV无码观看| 久久AAAA片一区二区| 久久精品国产亚洲AV香蕉| 亚洲欧美另类日本久久国产真实乱对白| 人妻丰满AV无码久久不卡| 亚洲国产成人乱码精品女人久久久不卡 | 国产精品亚洲美女久久久| 久久久久AV综合网成人 | 色综合久久中文综合网| 亚洲va久久久噜噜噜久久男同| 亚洲国产成人久久综合碰| 国产高潮国产高潮久久久91 | 久久久久综合国产欧美一区二区| 成人久久精品一区二区三区| 精品国产乱码久久久久久呢| 午夜福利91久久福利| 久久久精品久久久久久| 欧美精品一本久久男人的天堂| 久久精品欧美日韩精品| 国产A级毛片久久久精品毛片| 久久精品国产亚洲AV蜜臀色欲| 久久AV高潮AV无码AV| 久久亚洲精品无码AV红樱桃| 久久夜色精品国产噜噜麻豆 | 久久九九精品99国产精品| 久久人人爽人人爽人人AV | 欧美久久久久久| 久久久无码精品亚洲日韩京东传媒|