,则系统一定会崩盘,为了避免这一情况的发生,PE文件的头部依然包括一个标准的DOS_MZ格式的可执行部分,这样万一在DOS下执行PE文件,那么系统会弹出一个提示This program cannot be...,这样不至于崩溃.PE格式中的DOS部分由MZ格式的文件头和可执行代码部分组成,可执行代码被称为DOS块(DOS stub).MZ格式的文件头由IMAGE_DOS_HEADER结构定义,以下就是DOS头部分的关键属性...指向了PE文件的开头(重要)第一个字段e_magic被定义为MZ,标志着DOS文件的开头部分,最后一个字段e_lfanew则指明了PE文件的开头位置,现在来说除了第一个字段和最后一个字段有些用处,其他的字段几乎已经废弃了...UnmapViewOfFile,addr lpMemoryinvoke ExitProcess,NULLmain ENDPEND main上面的核心代码原理也非常的简单,过程:读入文件,判断第一个字符是不是MZ...,如果是MZ,则在判断e_lfanew指针指向的地址是不是PE如果是,则说明这是PE文件.下面的代码,则用于读取PE文件的一些关键区块信息..386.model flat,stdcalloption casemap