複製鏈接
請複製以下鏈接發送給好友

exe文件

鎖定
EXE File英文全名executable file ,譯作可執行文件,可移植可執行 (PE) 文件格式的文件,它可以加載到內存中,並由操作系統加載程序執行,是可在操作系統存儲空間中浮動定位的可執行程序。如記事本程序notepad.exe ,可以用來編輯文檔,如:測試.txt雙擊打開notepad.exe記事本程序來進行編輯處理。
中文名
exe文件
外文名
executable file
執行條件
操作系統存儲中的可執行程序
狀    態
MS-DOS和MS-WINDOWS下
別    名
可執行文件
平    台
MS-DOS和MS-WINDOWS

exe文件定義

EXE File 可執行程序 一種可在操作系統存儲空間中浮動定位的可執行程序。MS-DOS和MS-WINDOWS下,此類文件擴展名為.exe。
WINDOWS操作系統中的二進制可執行文件,可執行文件分兩種一種是後輟名為·COM另一種就是.EXE 了。
.COM一般用於DOS,在WINDOWS系統中的執行文件一般都是·EXE文件在 MS-DOS 中,用以標識可執行文件的文件擴展名。用户在提示行中輸入不帶 .exe擴展名的文件名後按 Enter 鍵就能運行可執行程序。

exe文件結構

EXE文件分為兩個部分: EXE文件頭和程序本體。exe文件比較複雜,屬於一種多段的結構,是DOS最成功和複雜的設計之一。每個exe文件包含一個文件頭和一個可重定位程序的映像。文件頭包含MS-DOS用於加載程序的信息,例如程序的大小和寄存器的初始值。文件頭還指向一個重定位表,該表包含指向程序映像中可重定位段地址的指針鏈表。MS-DOS通過把該映像直接從文件複製到內存加載exe程序,然後調整定位表中説明的可重定位段地址。定位表是一個重定位指針數組,每個指向程序映像中的可重定位段地址 [1] 
EXE 文件比較複雜,每個EXE文件都有一個文件頭,結構如下:
EXE文件頭信息
―――――――――――――――――――
偏移量 ┤ 意義 ┤
├00h-01h ┤MZ'EXE文件標記 ┤
├2h-03h ┤文件長度除512的餘數 ┤
├04h-05h ┤...............商 ┤
├06h-07h ┤重定位項的個數 ┤
├08h-09h ┤文件頭除16的商 ┤
├0ah-0bh ┤程序運行所需最小段數 ┤
├0ch-0dh ┤..............大.... ┤
├oeh-0fh ┤堆棧段的段值 (SS) ┤
├10h-11h ┤........sp ┤
├12h-13h ┤文件校驗和 ┤
├14h-15h ┤IP ┤
├16h-17h ┤CS ┤
├18h-19h ┤............ ┤
├1ah-1bh ┤............ ┤
├1ch ┤............ ┤
―――――――――――――――――――――――――
.EXE文件包含一個文件頭和一個可重定位程序映象。文件頭包含MS-DOS用於加載程序的信息,例如程序的大小和寄存器的初始值。文件頭還指向一個重定位表,該表包含指向程序映象中可重定位段地址指針鏈表。文件頭的形式與EXEHEADER結構對應:
EXEHEADER STRUC
exSignature dw 4D5AH ;.EXE標誌
exExraBytes dw ? ;最後(部分)頁中的字節數
exPages dw ? ;文件中的全部和部分頁數
exRelocItems dw ? ;重定位表中的指針數
exHeaderSize dw ? ;以字節為單位的文件頭大小
exMinAlloc dw ? ;最小分配大小
exMaxAlloc dw ? ;最大分配大小
exInitSS dw ? ;初始SS值
exInitSP dw ? ;初始SP值
exChechSum dw ? ;補碼校驗值
exInitIP dw ? ;初始IP值
exInitCS dw ? ;初始CS值
exRelocTable dw ? ;重定位表的字節偏移量
exOverlay dw ? ;覆蓋號

exe文件詳細説明

EXEHEADER ENDS程序映象,包含處理器代碼和程序的初始數據,緊接在文件頭之後。它的大小以字節為單位,等於.EXE文件的大小減去文件頭的大小,也等於exHeaderSize的域的值乘以16。MS-DOS通過把該映象直接從文件拷貝到內存加載.EXE程序然後調整定位表中説明的可重定位段地址。
定位表是一個重定位指針數組,每個指向程序映象中的可重定位段地址。文件頭中的exRelocItems域説明了數組中指針的個數,exRelocTable域説明了分配表的起始文件偏移量。每個重定位指針由兩個16位值組成:偏移量和段值。 為加載.EXE程序,MS-DOS首先讀文件頭以確定.EXE標誌並計算程序映象的大小。然後它試圖申請內存。首先,它計算程序映象文件的大小加上PSP的大小再加上EXEHEADER結構中的exMinAlloc域説明的內存大小這三者之和,如果總和超過最大可用內存塊的大小。則MS-DOS停止加載程序並返回一個出錯值。否則面,它計算程序映象的大小加上PSP的大小再加上EXEHEADER結構中exMaxAlloc域説明的內存大小之和,如果第二個總和小於最大可用內存塊的大小,則MS-DOS 分配計算得到的內存量。否則,它分配最大可用內存塊。分配完內存後,MS-DOS確定段地址,也稱為起始段地址,MS-DOS從此處加載程序映象。如果exMinAlloc域和exMaxAlloc域中的值都為零,則MS-DOS把映象儘可能地加載到內存最高端。否則,它把映象加載到緊挨着PSP域之上。接下來,MS-DOS讀取重定位表中的項目調整所有由可重定位指針説明的段地址。對於重定位表中的每個指針,MS-DOS尋找程序映象中相應的可重定位段地址,並把起始段地址加到它之上。一旦調整完畢,段地址便指向了內存中被加載程序的代碼和數據段。 MS-DOS在所分配內存的最低部分建造256字節的PSP,把AL和AH設置為加載 .COM程序時所設置的值。MS-DOS使用文件頭中的值設置SP與SS,調整SS初始值,把起始地址加到它之上。MS-DOS還把ES和DS設置為PSP的段地址.最後,MS-DOS從程序文件頭讀取CS和IP的初始值,把起始段地址加到CS之 上,把控制轉移到位於調整後地址處的程序 [2] 

exe文件讀取源代碼

生成的程序是不能看到源代碼的,不過可以看到那個程序的資源,用E-Code Explorer 反彙編調試由易語言編譯生成的易格式可執行文件,分析內部結構,查看其中的各項數據。
【功能簡介】
1.格式分析:分析易格式可執行文件的總體結構,查看對應項的數據。分別對PE骨骼(PE頭)和易格式原體分析,以樹形結構清晰的顯示,同時輔以詳細的分析表格。
2.反彙編分析:快速的靜態反彙編易格式可執行文件。提供方便的跳轉、調用目標地址的代碼預覽功能。
3.窗體分析:對易格式可執行文件中包含的窗體數據分析。以樹型結構清晰的顯示窗體單元的從屬結構。詳細的控件屬性顯示、準確的事件處理函數定位、與反彙編模式便捷的切換,讓使用者可以立即進入要調試的事件函數領空,避免在runtime的空間裏四處打轉浪費時間。這一點對於調試非線性事件驅動類型的程序是必須的。
4.符號修飾:可以調用易語言支持庫作為符號表,對反彙編後的代碼進行修飾,可以直接分析出函數所調用的方法,操作的屬性,使用到的常量、基本數據類型、自定義數據類型和窗口單元。極大地提高了代碼的可讀性。
5.內部數據分析:能夠分析出程序使用到的常量、API函數、服務,調用的支持庫。
6.多種加載方式:支持從文件加載和從某一進程的內存中直接加載反彙編。直接從進程列表附加,可以避免一部分AntiDebug造成的調試困難。
7.支持多種格式:支持標準PE可執行文件,易格式原體文件,其他類型的易格式文件。均可正確分析。
8.易格式捕捉者:對於不明外殼的易格式可執行文件(如:加殼後的,通過其它手段封裝的),能夠方便快速的進行分析。
9.提供十六進制文件查看功能。
10.提供多種輔助工具,完成從內存dump易格式原體、修復重定位信息、易格式原體生成EXE文件等功能。
11.分析結果和反彙編結果均可直接導出生成報告文件。
12.支持自定義反彙編,HEX查看的環境顏色,你可以選擇自己喜歡的顏色來閲讀代碼。
13.詳細的分析設置,可以自己設置最合適的調試環境。
14.提供文件拖放功能,直接進行分析或調試。
15.支持從命令行獲取要分析的文件 [3] 

exe文件注意

使用郵箱或qq傳送文件時,如果文件類型是exe文件。一般服務器都不允許傳送,甚至會當做病毒而報錯。對此,可將.exe文件壓縮或修改擴展名後(如改為.ex3)再進行傳送。
參考資料