Windows PE结构 之 MS-DOS 头结构解析

Windows PE结构 之 MS-DOS 头结构解析 - 侠者安全社区
Windows PE结构 之 MS-DOS 头结构解析
此内容为付费阅读,请付费后查看
会员专属资源
您暂无购买权限,请先开通会员
开通会员
付费阅读

0x0 基础知识

  • DO 头分为两部分:DOS ‘MZ’ HEADERDOS stub
  • DOS头的作用是 兼容 MS-DOS 操作系统中的可执行文件,对于 32位PE文件来说,DOS 所起的作用就是显示一行文字,提示用户:我需要在32位windows上才可以运行。
  • DOS ‘MZ’ HEADER对应的结构体 _IMAGE_DOS_HEADER (64个字节) 中仅第一个成员 e_magic 和最后一个成员 e_lfanew 在32位及以上的WINDOWS系统上有效
  • DOS Stub对应为一串反汇编代码,其功能和输出This program cannot be run in DOS相关
  • DOS ‘MZ’ HEADER中无效的成员部分可用来填充shellcode来达到其它目的
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;

我们只需要关注两个域:

成员数据宽度注释说明
e_magicWORD (2字节)Magic numberPE文件判断标识可执行文件必须都是’MZ’开头固定为4d 5a (ASCII=’MZ’)
e_lfanewLONG (4字节)File address of new exe header为 32 位可执行文件扩展的域,用来表示 DOS头之后的 NT头相对文件起始地址的偏移不定
Windows PE结构 之 MS-DOS 头结构解析-侠者安全社区

0x1 实现代码

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情

    暂无评论内容