版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、一個(gè)WindowsNT的應(yīng)用程序典型地?fù)碛?個(gè)預(yù)定義段,它們是.text、.bss、.rdata、.data、.rsrc、.edata、.idata、.pdata和.debug。一些應(yīng)用程序不需要所有的這些段,同樣還有一些應(yīng)用程序?yàn)榱俗约禾厥獾男枰x了更多的段。這種做法與MSDOS和Windows3.1中的代碼段和數(shù)據(jù)段相似。事實(shí)上,應(yīng)用程序定義一個(gè)獨(dú)特的段的方法是使用標(biāo)準(zhǔn)編譯器來指示對(duì)代碼段和數(shù)據(jù)段的命名,或者使用名稱段編譯器選項(xiàng)
2、NT——就和Windows3.1中應(yīng)用程序定義獨(dú)特的代碼段和數(shù)據(jù)段一樣。以下是一個(gè)關(guān)于WindowsNTPE文件之中一些有趣的公共段的討論??蓤?zhí)行代碼段,可執(zhí)行代碼段,.text.textWindows3.1和WindowsNT之間的一個(gè)區(qū)別就是WindowsNT默認(rèn)的做法是將所有的代碼段(正如它們在Windows3.1中所提到的那樣)組成了一個(gè)單獨(dú)的段,名為“.text”。既然WindowsNT使用了基于頁面的虛擬內(nèi)存管理系統(tǒng),那么將
3、分開的代碼放入不同的段之中的做法就不太明智了。因此,擁有一個(gè)大的代碼段對(duì)于操作系統(tǒng)和應(yīng)用程序開發(fā)者來說,都是十分方便的。.text段也包含了早先提到過的入口點(diǎn)。IAT亦存在于.text段之中的模塊入口點(diǎn)之前。(IAT在.text段之中的存在非常有意義,因?yàn)檫@個(gè)表事實(shí)上是一系列的跳轉(zhuǎn)指令,并且它們的跳轉(zhuǎn)目標(biāo)位置是已固定的地址。)當(dāng)WindowsNT的可執(zhí)行映像裝載入進(jìn)程的地址空間時(shí),IAT就和每一個(gè)導(dǎo)入函數(shù)的物理地址一同確定了。要在.te
4、xt段之中查找IAT,裝載器只用將模塊的入口點(diǎn)定位,而IAT恰恰出現(xiàn)于入口點(diǎn)之前。既然每個(gè)入口擁有相同的尺寸,那么向后退查找這個(gè)表的起始位置就很容易了。數(shù)據(jù)段,數(shù)據(jù)段,.bss.bss、.rdata.rdata、.data.data.bss段表示應(yīng)用程序的未初始化數(shù)據(jù),包括所有函數(shù)或源模塊中聲明為static的變量。.rdata段表示只讀的數(shù)據(jù),比如字符串文字量、常量和調(diào)試目錄信息。所有其它變量(除了出現(xiàn)在棧上的自動(dòng)變量)存儲(chǔ)在.dat
5、a段之中?;旧?,這些是應(yīng)用程序或模塊的全局變量。資源段,資源段,.rsrc.rsrc.rsrc段包含了模塊的資源信息。它起始于一個(gè)資源目錄結(jié)構(gòu),這個(gè)結(jié)構(gòu)就像其它大多數(shù)結(jié)構(gòu)一樣,但是它的數(shù)據(jù)被更進(jìn)一步地組織在了一棵資源樹之中。以下的IMAGE_RESOURCE_DIRECTY結(jié)構(gòu)形成了這棵樹的根和各個(gè)結(jié)點(diǎn)。WINNT.Htypedefstruct_IMAGE_RESOURCE_DIRECTYULONGacteristicsULONGTi
6、meDateStampUSHTMajVersion圖2.2.一個(gè)簡單的資源樹結(jié)構(gòu)一個(gè)簡單的資源樹結(jié)構(gòu)圖2描述了一個(gè)非常簡單的資源樹,它包含了僅僅兩個(gè)資源對(duì)象:一個(gè)菜單和一個(gè)字串表。更深一層地來說,它們各自都有一個(gè)子項(xiàng)。然而,你仍然可以看到資源樹有多么復(fù)雜——即使它像這個(gè)一樣只有一點(diǎn)點(diǎn)資源。在樹的根部,第一個(gè)目錄有一個(gè)文件中包含的所有資源種類的入口,而不管資源種類有多少。在圖2中,有兩個(gè)由樹根標(biāo)識(shí)的入口,一個(gè)是菜單的,另一個(gè)是字串表的。如
7、果文件中擁有一個(gè)或多個(gè)對(duì)話框資源,那么根結(jié)點(diǎn)會(huì)再擁有一個(gè)入口,因此,就有了對(duì)話框資源的另一個(gè)分支。WINUSER.H中標(biāo)識(shí)了基本的資源種類,我將它們列到了下面:WINUSER.H預(yù)定義的資源種類#defineRT_CURSMAKEINTRESOURCE(1)#defineRT_BITMAPMAKEINTRESOURCE(2)#defineRT_ICONMAKEINTRESOURCE(3)#defineRT_MENUMAKEINTRESO
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 編寫一個(gè)java程序片斷-定義一個(gè)表示學(xué)生的類student
- vb 利用treeview控件實(shí)現(xiàn)一個(gè)應(yīng)用程序的導(dǎo)航
- 項(xiàng)目說明為一個(gè)iphone應(yīng)用程序設(shè)計(jì)圖標(biāo)
- 第一單元我們擁有一個(gè)家
- 1你擁有一個(gè)風(fēng)險(xiǎn)組合
- 1你擁有一個(gè)風(fēng)險(xiǎn)組合
- 一個(gè)簡單的鬧鐘程序
- 一個(gè)it企業(yè)的典型團(tuán)隊(duì)管理
- 一個(gè)權(quán)限的難題:Android智能手機(jī)上安裝應(yīng)用程序的權(quán)限.doc
- 一個(gè)權(quán)限的難題:Android智能手機(jī)上安裝應(yīng)用程序的權(quán)限.doc
- windows應(yīng)用程序界面的設(shè)計(jì)
- 一個(gè)原創(chuàng)地儀表控件
- 一個(gè)簡單的密碼開鎖程序
- 如何通過 mpiprofibus 將一個(gè) wincc flexible 項(xiàng)目傳送給一個(gè)基于 windows 的面板?
- 一個(gè)權(quán)限的難題android智能手機(jī)上安裝應(yīng)用程序的權(quán)限外文翻譯
- 一個(gè)權(quán)限的難題:android智能手機(jī)上安裝應(yīng)用程序的權(quán)限外文翻譯
- 一個(gè)權(quán)限的難題android智能手機(jī)上安裝應(yīng)用程序的權(quán)限外文翻譯
- 如何編寫一個(gè)簡單的程序
- 一個(gè)權(quán)限的難題android智能手機(jī)上安裝應(yīng)用程序的權(quán)限外文翻譯
- 9 一個(gè)小村莊的故事
評(píng)論
0/150
提交評(píng)論