基于PEview分析PE文件(4-2)

3 PE文件的DOS头

在VS2015中,新建一个控制台程序,不输入任何代码,编译生成exe文件,该exe文件就是一个PE文件。

3.1 通过PEview查看PE文件格式

通过PEview.exe打开该exe文件,如图3所示。

 

图3PEview查看PE文件

从图3中可以看到,左侧的树形控件显示了PE文件的格式,而右侧则显示的是PE文件的头部和数据的具体内容。

3.2 DOS头

PE文件头部中的DOS头分为MZ文件头和DOS块,如图3所示,分别对应的是IMAGE_DOS_HEADER和MS-DOS Stub Program。

3.2.1 IMAGE_DOS_HEADER头

IMAGE_DOS_HEADER头的大小是64个字节,如图4所示。

 

图4 IMAGE_DS_HEADE头数据

其中,前两个字节0x4D和0x5A,是字母“M”和“Z”的ASCII码,是MS-DOS设计者Mark Zbikowski的姓名缩写。最后四个字节,表示下一个头部,即NT头的偏移地址,从图4中可以看到,该值是0x000000E8,即NT头的起始地址是0x000000E8。这两个标志之间的是PE文件在MS-DOS环境下运行时所需要的一些参数,在图3所示的界面中,点击左侧树形控件中的“IMAGE_DOS_HEADER”,在右侧既可以看到这些参数的具体值,如图5所示。

 

图5 IMAGE_DOS_HEADER参数值

3.2.2 DOS块

DOS块跟在IMAGE_DOS_HEADER后面,如图3所示。其中,“MS-DOS stub Program”即为DOS块。从字面上理解,DOS块是一个在DOS环境下可以运行的程序,在图3所示的界面中点击左侧的“MS-DOS stub Program”,则会在右侧显示该程序的数据,如图6所示。

 

图6 MS-DOS stub Program头

从图6可以看出,“MS-DOS stub Program”中包含了一个字符串,当PE文件在DOS环境下运行时,就会显示该字符串,即“This program cannot be run in DOS mode”,来提示用户PE程序必须在Windows下才能运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值