• <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>

            S.l.e!ep.¢%

            像打了激速一樣,以四倍的速度運轉(zhuǎn),開心的工作
            簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
            posts - 1098, comments - 335, trackbacks - 0, articles - 1
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            PE格式概貌

            Posted on 2009-09-07 22:21 S.l.e!ep.¢% 閱讀(385) 評論(0)  編輯 收藏 引用 所屬分類: PE

            PE格式概貌??
            ? 以下只是PE格式的大致結(jié)構(gòu)請跟著本教程一步步理解他們吧!??
            ? +---------------+??
            ? |?? DOS?? MZ?? header?? |????
            ? +---------------+??
            ? |?? DOS?? stub???????????? |??
            ? +---------------+????
            ? |?? PE?? header?????????? |??
            ? +---------------+??
            ? |?? Section?? table?? |??
            ? +---------------+????
            ? |?? Section?? 1?????????? |??
            ? +---------------+??
            ? |?? Section?? 2?????????? |??
            ? +---------------+????
            ? |?? Section?? ...?????? |??
            ? +---------------+??
            ? |?? Section?? n?????????? |??
            ? +---------------+????
            ? 1)?? DOS?? MZ?? header??
            ? 這一模塊有64個字節(jié)(我所看到的大都如此),我們所關(guān)心的是開始和結(jié)尾的四個字節(jié).??
            ? 開始的四個字節(jié)是16?? BIT的標(biāo)志位?? IMAGE_DOS_HEADER?? 4D?? 5A(ASC2碼就是'MZ')??
            ? 這就和BMP文件以'BM'為起始一樣僅作標(biāo)識,了解即可.查看一下剛才打開的文件(以后例子)??
            ? 在文件最開始就能看見4D?? 5A(MZ)??
            ? 最后的四個字節(jié)是從文件起始到PE?? header模塊的偏移量.例子中是E0?? 00?? 00?? 00(對于??
            ? 格式我們最關(guān)心的不就是偏移量嗎?還不記住?)。??
            ???
            ? 2)?? DOS?? STUB??
            ? 這一模塊沒有什么好說的.實際上是個有效的?? EXE,在不支持?? PE文件格式的操作系統(tǒng)中,??
            ? 它將簡單顯示一個錯誤提示,類似于字符串?? "This?? program?? requires?? Windows"??
            ???
            ? 3)?? PE?? header??
            ? 這一模塊比較重要.他包含很多重要的信息(如:支持在什么樣的機器上運行,有多少section??
            ? 是可執(zhí)行文件還是DLL等.這個模塊的起始地址可由DOS?? MZ?? header模塊的的最后四個字節(jié)讀出。??
            ? 如讀到的是?? E0?? 00?? 00?? 00?? 則此模塊的起始地址是0000000E,這樣PE?? LOADER可根據(jù)此地址跳過??
            ? DOS?? STUB直接定位到此模塊。??
            ???
            ? 4)?? section?? table??
            ? PE格式真正的內(nèi)容都是以?? section為單位的,section?? table是一個結(jié)構(gòu)數(shù)組,該數(shù)組中成員的??
            ? 個數(shù)就是該文件的SECTION個數(shù),由PE?? header模塊讀出。每個SECTION對應(yīng)一個結(jié)構(gòu)其??
            ? 包含對應(yīng)節(jié)的屬性、文件偏移量、虛擬偏移量等。??
            ???
            ? 5)?? 以下就是各個SECTION的內(nèi)容了??
            ???
            ? 了解了大概的模塊讓我們看看PE?? LOADER的裝載順序(以下摘自iczelion的PE教程)??
            ???
            ? .當(dāng)PE文件被執(zhí)行,PE裝載器檢查?? DOS?? MZ?? header?? 里的?? PE?? header?? 偏移量。??
            ? 如果找到,則跳轉(zhuǎn)到?? PE?? header。????
            ? .PE裝載器檢查?? PE?? header?? 的有效性。如果有效,就跳轉(zhuǎn)到PE?? header的尾部。????
            ? .緊跟?? PE?? header?? 的是節(jié)表。PE裝載器讀取其中的節(jié)信息,并采用文件映射方法將這些節(jié)映射到內(nèi)存,??
            ? 同時付上節(jié)表里指定的節(jié)屬性。????
            ? .PE文件映射入內(nèi)存后,PE裝載器將處理PE文件中類似?? import?? table(引入表)邏輯部分。


            本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/dennishan/archive/2008/10/09/3043667.aspx

            亚洲国产另类久久久精品小说| 亚洲欧洲久久av| 一级女性全黄久久生活片免费 | 久久99国产精品99久久| 久久久久波多野结衣高潮| 国产伊人久久| 久久电影网一区| 久久亚洲国产欧洲精品一| 国产精品一久久香蕉产线看| 久久不见久久见免费视频7| 亚洲精品午夜国产VA久久成人| 国产成年无码久久久免费| 亚洲狠狠婷婷综合久久蜜芽 | 久久精品www| 国产99久久精品一区二区| 久久成人影院精品777| 亚洲午夜久久影院| 精品久久久久一区二区三区| 久久精品国产一区二区电影| 人人狠狠综合久久亚洲高清| 伊人久久大香线蕉综合热线| 欧美精品乱码99久久蜜桃| 久久久无码精品亚洲日韩蜜臀浪潮| 一本一本久久A久久综合精品| 人妻少妇久久中文字幕一区二区| 久久精品九九亚洲精品| 996久久国产精品线观看| 99久久精品免费国产大片| 久久青青草原精品国产不卡| 久久人人爽人人爽AV片| 久久国产免费直播| 久久精品人人做人人爽电影| 久久久久亚洲av成人无码电影 | 色婷婷综合久久久久中文| 狠狠色噜噜狠狠狠狠狠色综合久久 | 欧美久久精品一级c片片| 久久久久国产| 久久久久久久亚洲Av无码| 久久er国产精品免费观看8| 久久精品aⅴ无码中文字字幕不卡| 国产精品对白刺激久久久|