PE文件-检验PE文件的有效性--转自iczelion,附vc示范

本文介绍了如何校验一个文件是否为有效的PE文件,主要关注PE header的IMAGE_NT_HEADERS结构。通过检查文件头部的DOS MZ header的e_lfanew成员定位到PE header,然后对比Signature字段的值是否为'PE'来确认其有效性。附带了VC代码示例进行验证。
摘要由CSDN通过智能技术生成

同样我首先附上Iczelion的PE文档:

如何才能校验指定文件是否为一有效PE文件呢? 这个问题很难回答,完全取决于想要的精准程度。您可以检验PE文件格式里的各个数据结构,或者仅校验一些关键数据结构。大多数情况下,没有必要校验文件里的每一个数据结构,只要一些关键数据结构有效,我们就认为是有效的PE文件了。下面我们就来实现前面的假设。

我们要验证的重要数据结构就是 PE header。从编程角度看,PE header 实际就是一个 IMAGE_NT_HEADERS 结构。定义如下:

IMAGE_NT_HEADERS STRUCT
   Signature dd ?
   FileHeader IMAGE_FILE_HEADER <>
   OptionalHeader IMAGE_OPTIONAL_HEADER32 <>
IMAGE_NT_HEADERS ENDS

Signature dword类型,值为50h, 45h, 00h, 00hPE\0\0)。 本域为PE标记,我们可以此识别给定文件是否为有效PE文件。
F

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值