PE文件的资源
1. PE文件的资源是以树形结构存储的。
2. 资源目录:
typedef struct
{
DWORD Characteristics;
DWORD TimeDateStamp;
WORD MajorVersion;
WORD MinorVersion;
WORD NumberOfNamedEntries;
WORD NumberOfIdEntries;
}IMAGE_RESOURCE_DIRECTORY;
IMAGE_RESOURCE_DIRECTORY_ENTRY DirectoryEntries[];
>
DirectoryEntries紧跟在IMAGE_RESOURCE_DIRECTORY之后,
个数是 = NumberOfNamedEntries + NumberOfIdEntries 。
typedef struct
{
DWORD Name;
DWORD OffsetToData;
}IMAGE_RESOURCE_DIRECTORY_ENTRY;
OffsetToData这字段若不是另一个资源目录的偏移位置,就是指向特定资源实体的一个指针。如果最
高位(0x80000000 )设立,表示这个目录项目指向另一个子目录,而剩余的 31 个位
元就是另一个 IMAGE_RESOURCE_DIRECTORY 的偏移位置(从resource section 算
起)。如果最高位没有设立,剩余的 31 个位就是某一个
IMAGE_RESOURCE_DATA_ENTRY 的偏移位置(从resource section 算起)。
IMAGE_RESOURCE_DATA_ENTRY 结构内含资源原始资料的位置、大小、以及code
page 。
DirectoryEntries[]
---------
---> 下一个目录 或者是 IMAGE_RESOURCE_DATA_ENTRY
---------
---------
typedef struct _IMAGE_RESOURCE_DATA_ENTRY {
DWORD OffsetToData;
DWORD Size;
DWORD CodePage;
DWORD Reserved;
} IMAGE_RESOURCE_DATA_ENTRY, *PIMAGE_RESOURCE_DATA_ENTRY;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述