最終更新:2012-01-08 (日) 10:26:52 (4485d)  

IMAGE_DOS_HEADER
Top / IMAGE_DOS_HEADER

MS-DOSで認識可能なデータフォーマット

もともとWindowsMS-DOSの上位OSとして設計されてきた経緯があるため、Windows XPが主流の現在でも、データの内部には遺物として残っている。

IMAGE_DOS_HEADER構造体は、EXEファイルの0バイト目から保存されている。

IMAGE_DOS_HEADER構造体 (winnt.h)

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;
 

マジックナンバー

  • 先頭のMZは設計者 Mark Zbikowski 氏のイニシャル

関連