PE文件学习(三)数据目录表之资源

PE文件中的资源结构复杂,通常包含三层目录:资源类型、目录资源ID和资源代码页。每个目录由IMAGE_RESOURCE_DIRECTORY结构和IMAGE_RESOURCE_DIRECTORY_ENTRY数组组成。IMAGE_RESOURCE_DIRECTORY_ENTRY的DataIsDirectory标志指示下一层是否为目录,OffsetToDirectory指向子目录或资源数据。通过三层索引,最终到达IMAGE_RESOURCE_DATA_ENTRY结构,该结构指示资源数据的位置。
摘要由CSDN通过智能技术生成

     资源是PE文件中最复杂的结构了,资源在PE文件中是以目录结构的形式存在的,一般情况下分为3层,从根目录开始分别是资源类型、目录资源ID与资源代码页。

     3层目录结构都是由一个IMAGE_RESOURCE_DIRECTORY结构为头部,后面跟着一个IMAGE_RESOURCE_DIRECTORY_ENTRY结构数组。

      结构体IMAGE_RESOURCE_DIRECTORY_ENTRY如下所示:

typedef  struct  _IMAGE_RESOURCE_DIRECTORY{
DWORD  Characteristics;    //资源属性标识
DWORD  TimeDateStamp;  //资源建立的时间
WORD    MajorVersion;      //资源主版本
WORD    MinorVersion;       //资源子版本
WORD    NumberOfNamedEntries;  //资源名称条目个数
WORD    NumberOfIdEntries;   //资源ID条目个数
} IMAGE_RESOURCE_DIRECTORY, *PIMAGE_RESOURCE_DIRECTORY;

  结构体IMAGE_RESOURCE_DIRECTORY_ENTRY:

typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY
{
	union 
	{
		struct 
		{
        DWORD NameOffset:31;    //资源名偏移
		DWORD NameIsString:1;   //资源名为字符串
		};	
        DWORD Name;        //资源/语言类型
	WORD Id;           //资源数字ID
	};
	union{
		DWORD OffsetToData;     //数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值