PE文件格式资源

一、资源的树形结构

二、有关资源的数据结构

(1)

IMAGE_RESOURCE_DIRECTORY struct

+00h  Characteristics              dd

+04h  TimeDateStamp            dd

+08h  MajorVersion                dw

+0ah  MinorVersion                dw

+0ch  NumberOfNameEntry     dw             ;使用名字命名的资源条目数量

+0eh  NumberOfIdEntry          dw             ;使用id命名的资源条目数量,

IMAGE_RESOURCE_DIRECOTRY ends

资源条目数量=NumberOfNameEntry + NumberOfIdEntry,即IMAGE_RESOURCE_DIRECTORY_ENTRY的数量

 (2)

IMAGE_RESOURCE_DIRECTORY_ENTRY struct

+00h  Name1                 dd            

+04h  OffsetToData        dd            

IMAGE_RESOURCE_DIRECTORY_ENTRY ends

说明:

Name1:位31为0,表示的id值,为1,表示的是指向名字IMAGE_RESOURCE_DIR_STRING_U的偏移指针,注意是相对资源首地址的偏移。

OffsetToData:当为1、2级目录时,此时位31为1,指向下级目录IMAGE_RESOURCE_DIRECOTRY首地址,当为3级目录时,此时位31为0,指向  IMAGE_RESOURCE_DATA_ENTRY

Name1和OffsetToData如果为偏移时,指的是相对资源首地址的偏移

(3)

 IMAGE_RESOURCE_DIR_STRING_U struct

+00h  Length              dw             ?      ;字符串的长度

+02h  NameString         WCHAR      ?      ;UNICODE字符串,字对齐的、长度可变,由Length指明Unicode字符串的长度

IMAGE_RESOURCE_DIR_STRING_U ends

(4)

IMAGE_RESOURCE_DATA_ENTRY struct

+00h  OffsetToData                    dd             ;资源数据的RVA

+04h  Size                                 dd            ;资源数据的长度

+08h  CodePage                         dd          

+0ch  Reserved                          dd

IMAGE_RESOURCE_DATA_ENTRY ends

原文地址:https://www.cnblogs.com/guanlaiy/p/2490091.html