当前位置:首页 » 文件管理 » 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)