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;

posted @   linxr  阅读(469)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 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的设计模式综述
点击右上角即可分享
微信分享提示