资源结构详解(2)

2019-02-20 20:51

第二层:资源名称

以索引图标资源为例

struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {

DWORD Name; //ID = 0x03 图标

DWORD OffsetToData; //子目录偏移地址= 0x80000168

};

找到第二层所在文件地址 = 0x212600 + 0x00000168 = 0x212768

struct _IMAGE_RESOURCE_DIRECTORY {

DWORD Characteristics; // 0x00000000 DWORD TimeDateStamp; //0x3C272350 WORD MajorVersion; //0x00 WORD MinorVersion; //0x00

WORD NumberOfNamedEntries; //0x00

WORD NumberOfIdEntries; //0x01 下面有一个资源目录入口结构 }

6

struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {

DWORD Name; //资源的名称 0x01

DWORD OffsetToData; // 子目录偏移地址= 0x80000628

};

Name字段当最高位位0,作为ID使用 struct _IMAGE_RESOURCE_DIR_STRING_U {

WORD Length; //ID = 0X01 光标

WCHAR NameString[ 1 ]; // 子目录偏移地址= 0x80000628 }

第三层:代码页编号

struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {

DWORD Name; //资源的名称 0x01

DWORD OffsetToData; // 子目录偏移地址= 0x80000628

};

找到第三层所在文件地址 = 0x212600 + 0x00000628 = 0x212C28

struct _IMAGE_RESOURCE_DIRECTORY { DWORD Characteristics; // 0X00

DWORD TimeDateStamp; //0X3C272350 WORD MajorVersion; //0x00 WORD MinorVersion; //0x00

WORD NumberOfNamedEntries; //0x00

WORD NumberOfIdEntries; //0x01 下面有一个资源目录入口结构 }

struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {

DWORD Name; //代码页编号 804

DWORD OffsetToData; // 资源数据偏移地址0x0C90

};

资源数据入口结构地址 = 0x212600 + 0x00000C90 = 0x213290

struct _IMAGE_RESOURCE_DATA_ENTRY {

DWORD OffsetToData; //资源数据的RVA = 0X2857B0 DWORD Size; //资源数据的长度 = 0X2E8

7

DWORD CodePage; //代码页一般为0 DWORD Reserved; //保留 }

文件资源数据地址 = 0x212600 + (0x2857B0 - 0x282000) = 0x215DB0 一直到0X216098 共0x2E8个字节

使用eXeScope进行验证

8

点击试图二进制

9

两者对比一模一样

10


资源结构详解(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:一人(自然人独资) 有限公司章程

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: