PE檔案格式詳解(1)
根據PE規範,檔案開始的兩個位元組為4D5A,e_lfanew值為000000F0(intel的CPU以逆序儲存資料,即小段序標識法)。 2.DOS存根 DOS存根(stub)在DOS頭的下方,是個可選項,並且大小不固定(即有無DOS存根,檔案均可正常執行)。DOS存根由程式碼與數混合而成,下圖就是notepad.exe的DOS存根。
上圖中,檔案偏移40~4D區域為16位的彙編指令。32位windows OS中不會執行該命令(由於被識別為PE檔案,所以完全忽視該程式碼)。在DOS環境中執行Notepad.exe檔案,或者使用DOS偵錯程式(debug.exe)執行他,可使其執行該程式碼(不識別PE檔案格式,所以被識別為DOS EXE檔案)。
介面中輸出字串"This program cannot be run in DOS mode"後便退出了,即notepad.exe檔案雖然是32位的PE檔案,但是帶有MS-DOS相容模式,可以在DOS環境中執行,執行DOS EXE程式碼,輸出"This program cannot be run in DOS mode"後終止。根據該特性便可在一個可執行檔案(EXE)中創建出另一個檔案,使它在DOS與Windows中都能執行(在DOS環境中執行16位DOS程式碼,在Windows環境中執行32位Windows程式碼)。
相關推薦
PE檔案格式詳解(1)
PE頭由許多結構體組成,接下來分別解釋一下各部分。 1.DOS頭 微軟最初建立PE格式的時候,DOS檔案被人們廣泛的使用,為了實現PE檔案對DOS檔案的相容性。結果是在PE頭的最前面添加了一個I
PE檔案格式詳解(六)
0x00 前言 前面兩篇講到了輸出表的內容以及涉及如何在hexWorkShop中找到輸出表及輸入DLL,感覺有幾個地方還是沒有理解好,比如由資料目錄表DataDirectory[16]找到輸出表表後以為找到輸入DLL就完了,其實這一流程的最終功能是通過輸入DLL找到輸入DLL呼叫的函
PE檔案格式詳解(五)
0x00 前言 前一篇瞭解了區塊虛擬地址和檔案地址轉換的相關知識,這一篇該把我們所學拿出來用用了。這篇我們將瞭解更為重要的一個知識點——輸入表和輸出表的知識。 0x01 輸入表 首先我們有疑問。這個輸入表是啥?為啥有輸入表?其實輸入表就是記錄PE輸入函式相
PE檔案格式詳解(四)
PE檔案格式詳解(四) 0x00 前言 上一篇介紹了區塊表的資訊,以及如何在hexwrokshop找到區塊表。接下來,我們繼續深入瞭解區塊,並且學會檔案偏移和虛擬地址轉換的知識。 0x01 區塊對齊值 首先我們要知道啥事區塊對齊?為啥要區塊對齊?這個問題
PE檔案格式詳解(一)
在本文中, 我並不打算大講特講PE檔案的構成是什麼,每個欄位是什麼意思, 這些資料可以說在網上是浩瀚如海,到處都是的, 用google一搜, 開啟一看, 基本講解的都是大同小異。 由於pe檔案的結構比較龐大, 結構中套結構, 有的結構多達30多個欄位, 光看這些欄位都讓人夠
PE檔案格式詳解(上)
Windows NT 3.1引入了一種名為PE檔案格式的新可執行檔案格式。PE檔案格式的規範包含在了MSDN的CD中(Specs and Strategy, Specifications, Windows NT File Format Specifications),
PE檔案格式詳解(2)
MS-DOS頭部/真實模式頭部 如上所述,PE檔案格式的第一個組成部分是MS-DOS頭部。在PE檔案格式中,它並非一個新概念,因為它與MS-DOS 2.0以來就已有的MS-DOS頭部是完全一樣的。保留這個相同結構的最主要原因是,當你嘗試在Windows 3.1以下或MS-
PE檔案格式詳解(4)
1.RVA to RAW PE檔案載入到記憶體時,每個節區都要準確完成記憶體地址與檔案偏移的對映。這種對映便稱為RVA to RAW,實現這個過程需要經過以下的步驟。 1.查詢RVA所
PE檔案格式詳解(六)
匯出資料段,.edata .edata段包含了應用程式或DLL的匯出資料。在這個段出現的時候,它會包含一個到達匯出資訊的匯出目錄。WINNT.Htypedef struct _IMAGE_EXPORT_DIRECTORY { ULONG Characteristics
PE檔案格式詳解(0)
0.介紹 PE是Windows作業系統性愛使用的可執行檔案格式。它是微軟在UNIX平臺的COFF(Common Object File Format,通用物件格式)基礎上而成的(在Windows
png檔案格式詳解【轉】
5.2.2 PNG影象檔案儲存結構(1) PNG檔案儲存結構的格式可以在http://www.w3.org/TR/REC-png.htm上找到定義。 BMP檔案總體上由兩部分組成,分別是PNG檔案標誌和資料塊(chunks),如表5-8所示。其中資料塊分為兩類:關鍵資料塊(cri
Class 檔案格式詳解
Class 檔案格式詳解 Write once, run everywhere!,我們都知道這是 Java 著名的宣傳口號。不同的作業系統,不同的 CPU 具有不同的指令集,如何做到平臺無關性,依靠的就是 Java 虛擬機器。計算機永遠只能識別 0 和 1組成的二進位制檔案,虛擬機器就是我們編寫的程式碼和計
PNG檔案格式詳解
PNG檔案結構分析(上:瞭解PNG檔案儲存格式)前言我們都知道,在進行J2ME的手機應用程式開發的時候,在圖片的使用上,我們可以使用PNG格式的圖片(甚至於在有的手機上,我們只可以使用PNG格式的圖片),儘管使用圖片可以為我們的應用程式增加不少亮點,然而,只支援PNG格式的圖片
Android逆向之旅---SO(ELF)檔案格式詳解
第一、前言從今天開始我們正式開始Android的逆向之旅,關於逆向的相關知識,想必大家都不陌生了,逆向領域是一個充滿挑戰和神祕的領域。作為一名Android開發者,每個人都想去探索這個領域,因為一旦你破解了別人的內容,成就感肯定爆棚,不過相反的是,我們不僅要研究破解之道,也要
[一]class 檔案淺析 .class檔案格式詳解 欄位方法屬性常量池欄位 class檔案屬性表 資料型別 資料結構
ClassFile { u4 magic;//唯一作用是確定這個檔案是否為一個能被虛擬機器所接受的class檔案。魔數值固定為0xCAFEBABE,不會改變 u2 minor_version;//唯一作用是確定這個檔案是否為一個能被虛擬機器所接受的class檔案。魔數值固定為0xCAFEBABE,不會
s19檔案格式詳解
1.概述 為了在不同的計算機平臺之間傳輸程式程式碼和資料,摩托羅拉將程式和資料檔案以一種可列印的格式(ASCII格式)編碼成s格式檔案。s格式檔案是Freescale推薦使用的標準檔案傳送格式。編譯完成之後,FreescaleCodeWarrior編譯器將在bin資料夾下自動生成“*.abs.s19”檔案,
Linux下可執行檔案格式詳解
Linux下面,目標檔案、共享物件檔案、可執行檔案都是使用ELF檔案格式來儲存的。程式經過編譯之後會輸出目標檔案,然後經過連結可以產生可執行檔案或者共享物件檔案。Linux下面使用的ELF檔案和Windows作業系統使用的PE檔案都是從Unix系統的COFF檔案格式演化來的
TIFF影象檔案格式詳解(3)
基本TIFF TAGS 本頁主要摘自 http://www.awaresystems.be/imaging/tiff/tifftags/baseline.html。每一個TAG均有原始連結,可以點選檢視詳細的描述。 這些基本Tag是所有TIFF編解碼器必須支援的Tag
SAM檔案格式詳解
生物資訊上的東西,由於發展的時間不長,所以各種標準都不算是廣泛傳播。 尤其是檔案格式之類的,中文版的資料很少,不少英文版的說明也不是很清晰。 這裡對SAM格式進行一下解釋,希望對新人有所幫助。 如下是SAM檔案中的一行 FCC0YG3ACXX:2:1
GZIP壓縮原理分析(04)——第三章 gzip檔案格式詳解(三02) gzip檔案頭
檔案頭由固定長度的部分和擴充套件部分組成,擴充套件部分不一定存在,尤其是網路傳輸使用的HTTP壓縮,如果使用了gzip格式,那麼對應的壓縮報文一般都不帶擴充套件部分。gzip檔案格式通過將頭部中定長部