當前位置:首頁 » 文件管理 » pe可選文件頭可以不要

pe可選文件頭可以不要

發布時間: 2024-08-02 05:54:02

① 用大白菜PE做的啟動u盤里頭的GHO2個文件能刪掉么會影響啟動u盤么

用大白菜PE做的啟動u盤里頭的GHO2個文件能刪掉么?會影響啟動u盤么

可以刪除不影響啟動。但你安裝系統需要有gho ISO之類的文件。

大白菜做的u盤啟動 U盤裡面的GHO文件夾和其他的軟體能不能刪掉

GHO文件夾是放GHO文件的,假如你刪掉的話,你用自動安裝,一鍵安裝的時候,是無法使用的。
你可以把你自己下載的GHO文件,放到GHO文件夾里,就可以自動搜索識別,然後進行自動安裝或者一鍵安裝

我用大白菜把U盤作為啟動盤後,如何把大白菜刪掉

再次使用大白菜把U盤初始化即可

大白菜啟動u盤里只有兩個文件夾?

能啟動就行了
要什麼程序呢?
啟動文件都是在隱藏分區的,看不到很正常的

用大白菜做的U盤啟動怎麼重裝W7

把鏡像文件解壓到啟動盤 插上 開機 按啟動熱鍵 選u盤啟動 進桌面選擇就行

我用大白菜製作了U盤啟動,請問一下xp的gho文襪攜件放在U盤什麼目錄

放u盤里就行了,能找著就可以的。

大白菜u盤啟動最多能加幾個pe

一個!

想u盤做系統,可是u啟動不了。u盤用大白菜一件製作的

你可以這樣操作~~

1、下載並安裝大白菜U盤啟動盤製作工具裝機版安裝程序。

2、完成安裝後點擊「立即體驗」按鈕即可打開大白菜U盤啟動盤製作工具。裝機版,隨後將准備好的U盤插入電腦u *** 介面中,成功連上後可以看到在讀取U盤後所識別出來的信息。

3、接著使用軟體提供好的默認參數設置進行製作,即模式選擇HDD-FAT32,分配選擇500M便可,最後一項NTFS如果進行勾選時會在制慶明作完u盤啟動盤之後將U盤格式轉換成NTFS,其特點便是能夠支持單個大於4GB文件的傳輸,若用戶所准備的u盤容量大於4G空間時可進行選擇。

4、參數信息確定無誤後直接點擊「一鍵製作啟動U盤」,所彈出的提示窗口中點擊確定後便可開始製作u盤啟動盤。

5、等待工具製作完成後,會有新一步的提示信息,詢問是否進行模擬啟動測試,若是第一次使用此工具製作u盤啟動盤的朋友可點擊「是」對製作好的u盤啟動盤進行模擬啟動測試,也可以選擇「否」退出即可。

6、完成模擬啟動測試後,需要同時按住ctrl+alt鍵釋放滑鼠,然後點擊關閉即可退出,切記:切勿深入測試啟動菜單內的選項測試。

7、將下載好的系統鏡像文件復制到u盤內即可。

我想自己做系統,u盤啟動盤用大白菜做的,行嗎

你做的這個只是U盤啟動器,也就是一個工具告差伏。系統本身需要下載的,到網上下載你喜歡的WINXP或者WIN7系統把下下來的ISO解壓出來獲得一個GHO文件,放到U盤裡面,裝系統的時候選擇這個文件就可以了。 是的,第一步需要准備一個新U盤,做U盤啟動器的時候會格式化你的U盤,如果裡面有東西記得拷出來,做完U盤啟動器以後,然後下載系統解壓出GHO文件放到U盤裡面,然後重啟選擇U盤啟動進入PE,選擇手動ghost 然後選擇你考進去的GHO文件就行了。

我用大白菜給U盤做成啟動盤。用U盤啟動電腦後,只能看到U盤啟動文件。其他剩餘空間都顯示不出來?

應該是做U啟失敗了,大白菜正常可以看見剩餘的空間.
空間格式必須是FAT32.
沒用其他分區軟體給U盤分區吧,等等各種原因都可能造成分區不顯示.,
終極方法:格式化後重新做U盤啟動.
網路知道-happy96168 誠心為您解答

② 紼嬪簭緙栫▼閲岀殑PE澶存槸浠涔

銆Windows鎿嶄綔緋葷粺瀹舵棌澧炲姞鐨刉indows NT涓哄紑鍙戠幆澧冨拰搴旂敤紼嬪簭鏈韜甯︽潵浜嗗緢澶х殑鏀瑰彉錛岃繖涔嬩腑涓涓鏈涓洪噸澶х殑褰撳睘PE鏂囦歡鏍煎紡浜嗐傛柊鐨凱E鏂囦歡鏍煎紡涓昏佹潵鑷浜嶶NIX鎿嶄綔緋葷粺鎵閫氱敤鐨凜OFF 瑙勮寖錛屽悓鏃朵負浜嗕繚璇佷笌鏃х増鏈琈S-DOS鍙奧indows鎿嶄綔緋葷粺鐨勫吋瀹癸紝PE鏂囦歡鏍煎紡涔熶繚鐣欎簡MS-DOS涓閭g啛鎮夌殑MZ澶撮儴銆

鍦╓indows涓嬶紝紼嬪簭鍜屽簱閮芥槸PE錛圥ortable Excutable錛夋牸寮忔枃浠訛紝鍙浠ヨ鍐呭瓨鏄犲皠鍒頒竴涓榪涚▼涓銆

鍔犺澆涓涓猈indows鍙鎵ц岀▼搴忔垨鑰匘LL涓庡姞杞戒竴涓鍔ㄦ侀摼鎺ョ殑ELF紼嬪簭鐩鎬技錛屽敖綆″湪Windows涓嬪姩鎬侀摼鎺ュ櫒鏄鎿嶄綔緋葷粺鍐呮牳鐨勪竴閮ㄥ垎銆

PE鏂囦歡鍙浠ュ寘鍚鏈夐噸瀹氫綅欏廣傞氬父涓涓鍙鎵ц岀▼搴忎笉浼氬寘鍚鍙閲嶅畾浣嶉」錛屽洜姝ゅ繀欏誨皢瀹冧滑鏄犲皠鍒板湪閾炬帴鏃剁『瀹氱殑鍦板潃涓娿侱LL閮藉寘鍚鏈夐噸瀹氫綅欏癸紝騫朵笖鍦ㄥ畠浠琚閾炬帴榪涙潵鐨勫湴鍧絀洪棿鏃犳晥鐨勬椂鍊欓兘浼氳閲嶅畾浣嶏紙寰杞灝嗚繍琛屾椂閲嶅畾浣嶇О涓簉ebasing錛夈

鎵鏈夌殑PE鏂囦歡錛屽寘鎷鍙鎵ц岀▼搴忓拰DLL錛岄兘鏈変竴涓鍏ュ彛鐐癸紝鍦―LL琚鍔犺澆銆佽鍗歌澆錛屼互鍙婃瘡涓嬈¤繘紼嬬殑綰跨▼attach鎴杁eattach榪欎釜DLL鐨勬椂鍊欙紝鍔犺澆鍣ㄩ兘浼氳皟鐢―LL鐨勫叆鍙g偣錛堟瘡涓嬈″姞杞藉櫒閮戒細浼犻掍竴涓鍙傛暟璇存槑璋冪敤鍘熷洜錛夈傝繖灝卞彲浠ユ彁渚涚被浼糆LF鐨.init鍜.fini鍖烘電殑閽╁瓙浠g爜鏉ュ疄鐜板垵濮嬪寲鍜岀粓緇撴搷浣溿
綆鑰岃█涔,PE澶村氨鏄痺indows涓鐗規湁鐨勫彲鎵ц屾枃浠跺ご.

③ 浠涔堟槸PE鏂囦歡鍒嗘瀽鍛

鍗沖筆E鏂囦歡鐨勫垎鏋愩

PE 鏂囦歡鏍煎紡
瀵 PE 鐨勪竴浜涜存槑錛 PE 鏄 Portable Excutable 鐨勭緝鍐欙紝鏄鎸団滃彲縐繪嶅彲鎵ц屸濇枃浠訛紝鏄 32 浣 Windows 錛堝寘鎷 OS/2 錛夊彲鎵ц屾枃浠剁殑鏍囧噯鏍煎紡銆備互鍓嶇殑 16 浣 Windows 鍙鎵ц屾枃浠剁殑鏍煎紡縐頒負 NE 錛屽嵆 New Excutable 鈥滄柊鍙鎵ц屸濇枃浠躲傚弬鑰冿細 NE 鏂囦歡鏍煎紡

涓銆佺畝浠

PE鏂囦歡鏈鍓嶉潰鏄涓涓狣OS鍙鎵ц屾枃浠訛紙STUB錛夛紝榪欎嬌PE鏂囦歡鎴愪負涓涓鍚堟硶鐨凪S-DOS鍙鎵ц
鏂囦歡銆
DOS鏂囦歡澶村悗闈㈡槸涓涓32浣嶇殑PE鏂囦歡鏍囧織0X00004550錛圛MAGE_NT_SIGNATURE錛夈
鎺ョ潃灝辨槸PE鐨勬枃浠跺ご浜嗭紝鍖呭惈鐨勪俊鎮鏈夎ョ▼搴忚繍琛屽鉤鍙般佹湁澶氬皯孌碉紙sections錛夈佹枃浠
閾炬帴鐨勬椂闂淬佸畠鏄涓涓鍙鎵ц屾枃浠訛紙EXE錛夎繕鏄涓涓鍔ㄦ侀摼鎺ュ簱錛圖LL錛夋垨鏄鍏朵粬銆
鍚庨潰緔ф帴鐫鏈変竴涓鈥滃彲閫夆濆ご閮錛堣繖涓閮ㄥ垎鎬繪槸瀛樺湪錛屼絾鏄鍥犱負COFF鍦ㄥ簱錛圠ibraries錛
涓鐢ㄤ簡榪欎釜璇嶏紝鍦ㄤ竴鍙鎵ц屾ā鍧椾腑騫舵病鏈夌敤榪欎釜璇嶏紝浣嗘槸浠嶈鍙鍋氬彲閫夌殑錛夈傝繖鍙閮ㄥ垎鍖呭惈紼
搴忓姞杞界殑鏇村氱殑淇℃伅錛氬紑濮嬪湴鍧銆佷繚鐣欏爢鏍堟暟閲忋佹暟鎹孌靛ぇ灝忕瓑絳夈
鍙閫夊ご涓榪樻湁涓涓閲嶈佺殑鍩熸槸涓鍙鍋氣滄暟鎹鐩褰曡〃鈥濓紙data directories錛夌殑鏁扮粍錛涜〃
涓鐨勬瘡涓欏規槸涓涓鎸囧悜鏌愪竴涓孌電殑鎸囬拡銆備緥濡傦細濡傛灉鏌愮▼搴忔湁涓涓杈撳嚭鐩褰曡〃錛坋xport dire
ctory 錛夛紝閭d綘灝變細鍦ㄦ暟鎹鐩褰曡〃涓鎵懼埌涓涓涓篒MAGE_DIRECTORY_ENTRY_EXPORT鐨勬寚閽堬紝騫朵笖
瀹冨皢鎸囧悜鏌愪竴涓孌點
鍙閫夊ご鐨勪笅闈㈠氨鏄鈥滄碘濓紙sections錛変簡錛岄氳繃涓涓鍙鍋氣滄靛ご鈥濓紙section headers錛
鐨勭粨鏋勭儲寮曘傚疄闄呬笂錛屾電殑鍐呭規墠鏄浣犺佺湡姝f墽琛岀殑紼嬪簭錛屼笂闈浠嬬粛鐨勬墍鏈夌殑鏂囦歡澶村強鐩褰曡〃
絳変俊鎮灝辨槸涓轟簡鑳芥g『鐨勬壘鍒板畠銆
姣忎竴涓孌甸兘鏈変竴浜涙湁鍏崇殑鏍囧織錛屼緥濡傚畠鍖呭惈浠涔堟暟鎹錛堚滃垵濮嬪寲鏁版嵁鈥濇垨鍏朵粬錛夛紝瀹冭兘
鍚﹁鍏變韓絳夛紝鍙婂畠鏁版嵁鏈韜鐨勭壒寰併傚ぇ澶氭暟鎯呭喌涓嬶紙騫朵笉鏄鍏ㄩ儴錛夛紝姣忎釜孌典細琚涓涓鎴栧氫釜鐩
褰曡〃鎸囧悜錛岀洰褰曡〃鍙閫氳繃鍙閫夊ご鐨勨滄暟鎹鐩褰曡〃鈥濈殑鍏ュ彛鎵懼埌錛屽氨璞¤緭鍑哄嚱鏁拌〃鎴栧熀鍧閲嶅畾浣
琛ㄣ備篃鏈夋病鏈夌洰褰曡〃鎸囧悜鐨勬碉紝濡傚彲鎵ц屼唬鐮佹垨鍒濆嬪寲鏁版嵁銆
鏁翠釜鏂囦歡緇撴瀯濡備笅錛
+-------------------+
| DOS-stub |
+-------------------+
| file-header |
+-------------------+
| optional header |
|- - - - - - - - - -|
| |
| data directories |
| |
+-------------------+
| |
| section headers |
| |
+-------------------+
| |
| section 1 |
| |
+-------------------+
| |
| section 2 |
| |
+-------------------+
| |
| ... |
| |
+-------------------+
| |
| section n |
| |
+-------------------+

涓嬮潰浠嬬粛涓涓嬬浉鍏寵櫄鎷熷湴鍧錛圧elative Virtual Addresses錛
PE鏍煎紡鏂囦歡涓緇忓父鐢ㄥ埌RVA錛屽嵆鐩稿叧鉶氭嫙鍦板潃錛岀敤鍦ㄤ笉鐭ラ亾鍩哄湴鍧鐨勬儏鍐典笅琛ㄧず涓涓鍐呭瓨
鍦板潃銆傚畠闇瑕佸姞涓婂熀鍦板潃鎵嶈兘寰楀埌綰挎у湴鍧錛圠inear address錛夈
渚嬪傦細鍋囪句竴涓鍙鎵ц岀▼搴忚皟鍏ュ唴瀛0x400000澶勫苟涓旂▼搴忎粠RVA 0x1560澶勫紑濮嬫墽琛屻傞偅
涔堟g『鐨勫紑濮嬪湴鍧鏄0x401560銆傚傛灉鍙鎵ц岀▼搴忚皟鍏0x100000澶勶紝鍒欏紑濮嬪湴鍧涓0x101560銆
鍥犱負PE鏂囦歡鐨勬瘡涓涓孌典笉蹇呮寜鍚屾牱鐨勮竟鐣屽歸綈鏂瑰紡璋冨叆錛屽洜姝RVA鍦板潃鐨勮$畻鍙樺緱姣旇緝澶
鏉傘備緥濡傦紝鍦ㄦ枃浠朵腑姣忎竴涓孌靛線寰鎸512涓瀛楄妭鐨勬柟寮忓歸綈錛岃屽湪鍐呭瓨涓鍙鑳戒互4096瀛楄妭鐨勬柟
寮忓歸綈銆傝繖鏂歸潰鐨勪粙緇嶅彲瑙佷笅闈㈢殑鈥淪ectionAlignment鈥濄佲淔ileAlignment鈥濄備婦涓渚嬪瓙錛
鍋囪句綘鐭ラ亾涓涓紼嬪簭浠嶳VA 0x1560寮濮嬫墽琛岋紝浣犳兂浠庨偅鍎垮弽奼囩紪瀹冦備綘鍙戠幇鍐呭瓨涓鐨勬靛歸綈鏂
寮忎負4096騫朵笖.code孌靛紑濮嬩簬鍐呭瓨RVA 0x1560騫朵笖鏈16384瀛楄妭闀匡紱閭d箞浣犲彲浠ョ煡閬揜VA 0x156
0鍦ㄨ繖涓孌電殑0x560澶勩備綘鍙堝彂鐜拌繖涓孌靛湪鏂囦歡涓浠512瀛楄妭鏂瑰紡瀵歸綈騫朵笖.code寮濮嬩簬鏂囦歡0x8
00澶勶紝閭g幇鍦ㄤ綘鐭ラ亾浜嗗彲鎵ц岀▼搴忓紑濮嬩簬0x800+0x560 = 0xd60澶勩

浜屻丏OS澶達紙DOS-stub 錛
浼楁墍鍛ㄧ煡DOS澶寸殑姒傚康鏄浠16浣嶇殑WINDOWS鍙鎵ц岀▼搴忥紙NE鏍煎紡錛変腑鏉ョ殑錛岃繖涓閮ㄥ垎涓昏
鐢ㄥ湪OS/2鍙鎵ц岀▼搴忋佽嚜瑙e帇鏂囨。鍙婂叾浠栧簲鐢ㄧ▼搴忋傚湪PE鏍煎紡鏂囦歡涓錛屽ぇ澶氭暟紼嬪簭鐨勮繖涓閮ㄥ垎
涓鍙鏈夊ぇ綰100涓瀛楄妭鐨勪唬鐮侊紝鍙杈撳嚭涓涓璇稿傗渢his program needs windows NT 鈥濅箣綾葷殑
淇℃伅銆
浣犲彲浠ラ氳繃涓涓鍙鍋欼MAGE_DOS_HEADER鐨勭粨鏋勬潵璇嗗埆涓涓鍚堟硶鐨凞OS澶淬傝繖涓緇撴瀯鐨勫ご涓
涓瀛楄妭涓瀹氭槸鈥淢Z鈥濓紙#define IMAGE_DOS_SIGNATURE "MZ"錛夈傛庝箞鎵嶈兘鎵懼埌PE寮濮嬬殑鏍囧織鍛
錛熶綘鍙浠ラ氳繃璇ョ粨鏋勭殑涓涓鍙鍋氣渆_lfanew鈥濓紙offset 60錛32bits錛 鐨勬垚鍛樻潵鎵懼埌瀹冦傚湪O
S/2鍙16浣峎INDOWS紼嬪簭涓榪欎釜鏍囧織鏄涓涓16浣嶇殑瀛楋紱鍦≒E紼嬪簭涓錛屽畠鏄涓涓32浣嶇殑鍙屽瓧錛屽間負
0x00004550錛#define IMAGE_NT_SIGNATURE 0x00004550錛夈

typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header
WORD e_magic; // Magic number
WORD e_cblp; // Bytes on last page of file
WORD e_cp; // Pages in file
WORD e_crlc; // Relocations
WORD e_cparhdr; // Size of header in paragraphs
WORD e_minalloc; // Minimum extra paragraphs needed
WORD e_maxalloc; // Maximum extra paragraphs needed
WORD e_ss; // Initial (relative) SS value
WORD e_sp; // Initial SP value
WORD e_csum; // Checksum
WORD e_ip; // Initial IP value
WORD e_cs; // Initial (relative) CS value
WORD e_lfarlc; // File address of relocation table
WORD e_ovno; // Overlay number
WORD e_res[4]; // Reserved words
WORD e_oemid; // OEM identifier (for e_oeminfo)
WORD e_oeminfo; // OEM information; e_oemid specific
WORD e_res2[10]; // Reserved words
LONG e_lfanew; // File address of new exe header
} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;

涓夈佹枃浠跺ご錛團ile Header錛
閫氳繃DOS澶達紝浣犲彲浠ユ壘鍒頒竴涓鍙鍋欼MAGE_FILE_HEADER鐨勭粨鏋勶紝濡備笅錛涗笅闈㈡垜鍒嗗埆浠嬬粛涓
涓嬨

typedef struct _IMAGE_FILE_HEADER {
WORD Machine; //0x04
WORD NumberOfSections; //0x06
DWORD TimeDateStamp; //0x08
DWORD PointerToSymbolTable; //0x0c
DWORD NumberOfSymbols; //0x10
WORD SizeOfOptionalHeader; //0x14
WORD Characteristics; //0x16
} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;

Machine錛氳〃紺鴻ョ▼搴忚佹墽琛岀殑鐜澧冨強騫沖彴錛岀幇鍦ㄥ凡鐭ョ殑鍊煎備笅錛
IMAGE_FILE_MACHINE_I386錛0x14c錛
Intel 80386 澶勭悊鍣ㄤ互涓
0x014d
Intel 80486 澶勭悊鍣ㄤ互涓
0x014e
Intel Pentium 澶勭悊鍣ㄤ互涓
0x0160
R3000(MIPS)澶勭悊鍣錛岄珮浣嶅湪鍓
IMAGE_FILE_MACHINE_R3000(0x162)
R3000(MIPS)澶勭悊鍣錛屼綆浣嶅湪鍓
IMAGE_FILE_MACHINE_R4000(0x166)
R4000(MIPS)澶勭悊鍣錛屼綆浣嶅湪鍓
IMAGE_FILE_MACHINE_R10000(0x168)
R10000(MIPS)澶勭悊鍣錛屼綆浣嶅湪鍓
IMAGE_FILE_MACHINE_ALPHA(0x184)
DEC Alpha AXP澶勭悊鍣
IMAGE_FILE_MACHINE_POWERPC(0x1f0)
IBM Power PC錛屼綆浣嶅湪鍓
NumberOfSections錛氭電殑涓鏁幫紝孌電殑姒傚康鎴戜滑灝嗗湪涓嬮潰浠嬬粛銆
TimeDateStamp錛氭枃浠跺緩絝嬬殑鏃墮棿銆備綘鍙鐢ㄨ繖涓鍊兼潵鍖哄垎鍚屼竴涓鏂囦歡鐨勪笉鍚岀殑鐗堟湰錛屽嵆浣
瀹冧滑鐨勫晢涓氱増鏈鍙風浉鍚屻傝繖涓鍊肩殑鏍煎紡騫舵病鏈夋槑紜鐨勮勫畾錛屼絾鏄寰堟樉鐒剁殑澶у氭暟鐨凜緙栬瘧鍣ㄩ兘
鎶婂畠瀹氫負浠1970.1.1 00:00:00浠ユ潵鐨勭掓暟錛坱ime_t 錛夈傝繖涓鍊兼湁鏃朵篃琚鐢ㄥ仛緇戝畾杈撳叆鐩褰曡〃
錛岃繖灝嗗湪涓嬮潰浠嬬粛銆
娉ㄦ剰錛氫竴浜涚紪璇戝櫒灝嗗拷鐣ヨ繖涓鍊箋
PointerToSymbolTable 鍙 NumberOfSymbols錛氱敤鍦ㄨ皟璇曚俊鎮涓錛屾垜涓嶅お娓呮氬畠浠鐨勭敤閫
錛屼笉榪囧彂鐜板畠浠鎬諱負0銆
SizeOfOptionalHeader錛氬彲閫夊ご鐨勯暱搴︼紙sizeof IMAGE_OPTIONAL_HEADER錛変綘鍙浠ョ敤瀹
鏉ユ楠孭E鏂囦歡鐨勬g『鎬с
Characteristics錛氭槸涓涓鏍囧織鐨勯泦鍚堬紝鍏朵腑澶ч儴鍒嗙殑浣嶇敤鍦ㄧ洰鏍囨枃浠訛紙OBJ錛夋垨搴撴枃浠
錛圠IB錛変腑錛
Bit 0 (IMAGE_FILE_RELOCS_STRIPPED)錛氱疆1琛ㄧず鏂囦歡涓娌℃湁閲嶅畾鍚戜俊鎮銆傛瘡涓孌甸兘
鏈夊畠浠鑷宸辯殑閲嶅畾鍚戜俊鎮銆傝繖涓鏍囧織鍦ㄥ彲鎵ц屾枃浠朵腑娌℃湁浣跨敤錛屽湪鍙鎵ц屾枃浠朵腑鏄鐢ㄤ竴涓鍙鍋
鍩哄潃閲嶅畾鍚戠洰褰曡〃鏉ヨ〃紺洪噸瀹氬悜淇℃伅鐨勶紝榪欏皢鍦ㄤ笅闈浠嬬粛銆
Bit 1 (IMAGE_FILE_EXECUTABLE_IMAGE)錛氱疆1琛ㄧず璇ユ枃浠舵槸鍙鎵ц屾枃浠訛紙涔熷氨鏄璇
涓嶆槸涓涓鐩鏍囨枃浠舵垨搴撴枃浠訛級銆
Bit 2 (IMAGE_FILE_LINE_NUMS_STRIPPED)錛氱疆1琛ㄧず娌℃湁琛屾暟淇℃伅錛涘湪鍙鎵ц屾枃浠
涓娌℃湁浣跨敤銆
Bit 3 (IMAGE_FILE_LOCAL_SYMS_STRIPPED)錛氱疆1琛ㄧず娌℃湁灞閮ㄧ﹀彿淇℃伅錛涘湪鍙鎵ц
鏂囦歡涓娌℃湁浣跨敤銆
Bit 4 (IMAGE_FILE_AGGRESIVE_WS_TRIM)錛
Bit 7 (IMAGE_FILE_BYTES_REVERSED_LO)
Bit 15 (IMAGE_FILE_BYTES_REVERSED_HI)錛氳〃紺烘枃浠剁殑瀛楄妭欏哄簭濡傛灉涓嶆槸鏈哄櫒鎵鏈
鏈涚殑錛岄偅涔堝湪璇誨嚭涔嬪墠瑕佽繘琛屼氦鎹銆傚湪鍙鎵ц屾枃浠朵腑瀹冧滑鏄涓嶅彲淇$殑錛堟搷浣滅郴緇熸湡鏈涙寜姝g『鐨
瀛楄妭欏哄簭鎵ц岀▼搴忥級銆
Bit 8 (IMAGE_FILE_32BIT_MACHINE)錛氳〃紺哄笇鏈涙満鍣ㄤ負32浣嶆満銆傝繖涓鍊兼案榪滀負1銆
Bit 9 (IMAGE_FILE_DEBUG_STRIPPED)錛氳〃紺烘病鏈夎皟璇曚俊鎮錛屽湪鍙鎵ц屾枃浠朵腑娌℃湁浣
鐢ㄣ
Bit 10 (IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP)錛氱疆1琛ㄧず璇ョ▼搴忎笉鑳借繍琛屼簬鍙縐
鍔ㄤ粙璐ㄤ腑錛堝傝蔣椹辨垨CD-ROM錛夈傚湪榪欑嶆儏鍐典笅錛孫S蹇呴』鎶婃枃浠舵嫹璐濆埌浜ゆ崲鏂囦歡涓鎵ц屻
Bit 11 (IMAGE_FILE_NET_RUN_FROM_SWAP)錛氱疆1琛ㄧず紼嬪簭涓嶈兘鍦ㄧ綉涓婅繍琛屻傚湪榪欑
鎯呭喌涓嬶紝OS蹇呴』鎶婃枃浠舵嫹璐濆埌浜ゆ崲鏂囦歡涓鎵ц屻
Bit 12 (IMAGE_FILE_SYSTEM)錛氱疆1琛ㄧず鏂囦歡鏄涓涓緋葷粺鏂囦歡渚嬪傞┍鍔ㄧ▼搴忋傚湪鍙鎵
琛屾枃浠朵腑娌℃湁浣跨敤銆
Bit 13 (IMAGE_FILE_DLL)錛氱疆1琛ㄧず鏂囦歡鏄涓涓鍔ㄦ侀摼鎺ュ簱錛圖LL錛夈
Bit 14 (IMAGE_FILE_UP_SYSTEM_ONLY)錛氳〃紺烘枃浠惰璁捐℃垚涓嶈兘榪愯屼簬澶氬勭悊鍣ㄧ郴
緇熶腑銆

鍥涖佸彲閫夊ご錛圤ptional Header錛
鏂囦歡澶翠笅闈㈠氨鏄鍙閫夊ご錛岃繖鏄涓涓鍙鍋欼MAGE_OPTIONAL_HEADER鐨勭粨鏋勩傚畠鍖呭惈寰堝氬叧浜
PE鏂囦歡瀹氫綅鐨勪俊鎮銆備笅闈㈠垎鍒浠嬬粛錛
typedef struct _IMAGE_OPTIONAL_HEADER {
//
// Standard fields.
//
WORD Magic; //0x18
BYTE MajorLinkerVersion; //0x1a
BYTE MinorLinkerVersion; //0x1b
DWORD SizeOfCode; //0x1c
DWORD SizeOfInitializedData; //0x20
DWORD SizeOfUninitializedData; //0x24
DWORD AddressOfEntryPoint; //0x28
DWORD BaseOfCode; //0x2c
DWORD BaseOfData; //0x30
//
// NT additional fields.
//
DWORD ImageBase; //0x34
DWORD SectionAlignment; //0x38
DWORD FileAlignment; //0x3c
WORD MajorOperatingSystemVersion; //0x3e
WORD MinorOperatingSystemVersion; //0x40
WORD MajorImageVersion; //0x42
WORD MinorImageVersion; //0x44
WORD MajorSubsystemVersion; //0x46
WORD MinorSubsystemVersion; //0x48
DWORD Win32VersionValue; //0x4c
DWORD SizeOfImage; //0x50
DWORD SizeOfHeaders; //0x54
DWORD CheckSum; //0x58
WORD Subsystem; //0x5c
WORD DllCharacteristics; //0x5e
DWORD SizeOfStackReserve; //0x60
DWORD SizeOfStackCommit; //0x64
DWORD SizeOfHeapReserve; //0x68
DWORD SizeOfHeapCommit; //0x6c
DWORD LoaderFlags; //0x70
DWORD NumberOfRvaAndSizes; //0x74
IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
} IMAGE_OPTIONAL_HEADER, *PIMAGE_OPTIONAL_HEADER;

Magic錛氳繖涓鍊煎ソ璞℃繪槸0x010b銆
MajorLinkerVersion鍙奙inorLinkerVersion錛氶摼鎺ュ櫒鐨勭増鏈鍙鳳紝榪欎釜鍊間笉澶鍙闈犮
SizeOfCode錛氬彲鎵ц屼唬鐮佺殑闀垮害銆
SizeOfInitializedData錛氬垵濮嬪寲鏁版嵁鐨勯暱搴︼紙鏁版嵁孌碉級銆
SizeOfUninitializedData錛氭湭鍒濆嬪寲鏁版嵁鐨勯暱搴︼紙bss孌碉級銆
AddressOfEntryPoint錛氫唬鐮佺殑鍏ュ彛RVA鍦板潃錛岀▼搴忎粠榪欏効寮濮嬫墽琛屻
BaseOfCode錛氬彲鎵ц屼唬鐮佽搗濮嬩綅緗錛屾剰涔変笉澶с
BaseOfData錛氬垵濮嬪寲鏁版嵁璧峰嬩綅緗錛屾剰涔変笉澶с
ImageBase錛氳澆鍏ョ▼搴忛栭夌殑RVA鍦板潃銆傝繖涓鍦ㄥ潃鍙琚獿oader鏀瑰彉銆
SectionAlignment錛氭靛姞杞藉悗鍦ㄥ唴瀛樹腑鐨勫歸綈鏂瑰紡銆
FileAlignment錛氭靛湪鏂囦歡涓鐨勫歸綈鏂瑰紡銆
MajorOperatingSystemVersion鍙奙inorOperatingSystemVersion錛氭搷浣滅郴緇熺増鏈錛孡oad
er騫舵病鏈夌敤瀹冦
MajorImageVersion鍙奙inorImageVersion錛氱▼搴忕増鏈銆
MajorSubsystemVersion鍙奙inorSubsystemVersion錛氬瓙緋葷粺鐗堟湰鍙鳳紝榪欎釜鍩熺郴緇熸敮鎸侊紱
渚嬪傦細濡傛灉紼嬪簭榪愯屼簬NT涓嬶紝瀛愮郴緇熺増鏈鍙峰傛灉涓嶆槸4.0鐨勮瘽錛屽硅瘽妗嗕笉鑳芥樉紺3D椋庢牸銆
Win32VersionValue錛氳繖涓鍊煎ソ璞℃繪槸涓0銆
SizeOfImage錛氱▼搴忚皟鍏ュ悗鍗犵敤鍐呭瓨澶у皬錛堝瓧鑺傦級錛岀瓑浜庢墍鏈夋電殑闀垮害涔嬪拰銆
SizeOfHeaders錛氭墍鏈夋枃浠跺ご鐨勯暱搴︿箣鍜岋紝瀹冪瓑浜庝粠鏂囦歡寮濮嬪埌絎涓涓孌電殑鍘熷嬫暟鎹涔嬮棿
鐨勫ぇ灝忋
CheckSum錛氭牎楠屽拰銆傚畠浠呯敤鍦ㄩ┍鍔ㄧ▼搴忎腑錛屽湪鍙鎵ц屾枃浠朵腑鍙鑳戒負0銆傚畠鐨勮$畻鏂規硶Mic
rosoft涓嶅叕寮錛屽湪imagehelp.dll涓鐨凜heckSumMappedFile()鍑芥暟鍙浠ヨ$畻瀹冦
Subsystem錛歂T瀛愮郴緇燂紝鍙鑳芥槸浠ヤ笅鐨勫礆細
IMAGE_SUBSYSTEM_NATIVE (1)
涓嶉渶瑕佸瓙緋葷粺銆傜敤鍦ㄩ┍鍔ㄧ▼搴忎腑銆
IMAGE_SUBSYSTEM_WINDOWS_GUI(2)
WIN32 graphical紼嬪簭錛堝畠鍙鐢ˋllocConsole()鏉ユ墦寮涓涓鎺у埗鍙幫紝浣嗘槸涓嶈兘鍦
涓寮濮嬭嚜鍔ㄥ緱鍒幫級銆
IMAGE_SUBSYSTEM_WINDOWS_CUI(3)
WIN32 console紼嬪簭錛堝畠鍙浠ヤ竴寮濮嬭嚜鍔ㄥ緩絝嬶級銆
IMAGE_SUBSYSTEM_OS2_CUI(5)
OS/2 console紼嬪簭錛堝洜涓虹▼搴忔槸OS/2鏍煎紡錛屾墍浠ュ畠寰堝皯鐢ㄥ湪PE錛夈
IMAGE_SUBSYSTEM_POSIX_CUI(7)
POSIX console紼嬪簭銆
Windows95紼嬪簭鎬繪槸鐢╓IN32瀛愮郴緇燂紝鎵浠ュ彧鏈2鍜3鏄鍚堟硶鐨勫箋
DllCharacteristics錛欴ll鐘舵併
SizeOfStackReserve錛氫繚鐣欏爢鏍堝ぇ灝忋
SizeOfStackCommit錛氬惎鍔ㄥ悗瀹為檯鐢寵風殑鍫嗘爤鏁幫紝鍙闅忓疄闄呮儏鍐靛彉澶с
SizeOfHeapReserve錛氫繚鐣欏爢澶у皬銆
SizeOfHeapCommit錛氬疄闄呭爢澶у皬銆
LoaderFlags錛氬ソ璞℃病鏈夌敤銆
NumberOfRvaAndSizes錛氫笅闈㈢殑鐩褰曡〃鍏ュ彛涓鏁幫紝榪欎釜鍊間篃涓嶅彲闈狅紝浣犲彲鐢ㄥ父鏁癐MAGE_N
UMBEROF_DIRECTORY_ENTRIES鏉ヤ唬鏇垮畠錛屽煎ソ璞℃葷瓑浜16銆
DataDirectory錛氭槸涓涓狪MAGE_DATA_DIRECTORY鏁扮粍錛屾暟緇勫厓緔犱釜鏁頒負IMAGE_NUMBEROF_
DIRECTORY_ENTRIES錛岀粨鏋勫備笅錛
typedef struct _IMAGE_DATA_DIRECTORY {
DWORD VirtualAddress;
DWORD Size;
} IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;
VirtualAddress錛氳搗濮婻VA鍦板潃銆
Size錛氶暱搴︺
姣忎竴涓鐩褰曡〃浠h〃浠ヤ笅鐨勫礆細
IMAGE_DIRECTORY_ENTRY_EXPORT (0)
IMAGE_DIRECTORY_ENTRY_IMPORT (1)
IMAGE_DIRECTORY_ENTRY_RESOURCE (2)
IMAGE_DIRECTORY_ENTRY_EXCEPTION (3)
IMAGE_DIRECTORY_ENTRY_SECURITY (4)
IMAGE_DIRECTORY_ENTRY_BASERELOC (5)
IMAGE_DIRECTORY_ENTRY_DEBUG (6)
IMAGE_DIRECTORY_ENTRY_COPYRIGHT (7)
IMAGE_DIRECTORY_ENTRY_GLOBALPTR (8)
IMAGE_DIRECTORY_ENTRY_TLS (9)
IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG (10)
IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT (11)
IMAGE_DIRECTORY_ENTRY_IAT (12)