一、资源的树形结构
二、有关资源的数据结构
(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
联系客服