WindowsPE 资源表
2021/8/1 7:07:45
本文主要是介绍WindowsPE 资源表,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
0x01IMAGE_RESOURCE_DIRECTORY
资源表分布图
查看一个exe 资源表
4000位置 资源目录头的结构体
typedef struct _IMAGE_RESOURCE_DIRECTORY { DWORD Characteristics; DWORD TimeDateStamp; WORD MajorVersion; WORD MinorVersion; WORD NumberOfNamedEntries; WORD NumberOfIdEntries; // IMAGE_RESOURCE_DIRECTORY_ENTRY DirectoryEntries[]; } IMAGE_RESOURCE_DIRECTORY, *PIMAGE_RESOURCE_DIRECTORY;
0x02IMAGE_RESOURCE_DIRECTORY_ENTRY
接着就是资源目录项
//@[comment("MVI_tracked")] typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY { union { struct { DWORD NameOffset:31; DWORD NameIsString:1; } DUMMYSTRUCTNAME; DWORD Name; WORD Id; } DUMMYUNIONNAME; union { DWORD OffsetToData; struct { DWORD OffsetToDirectory:31; DWORD DataIsDirectory:1; } DUMMYSTRUCTNAME2; } DUMMYUNIONNAME2; } IMAGE_RESOURCE_DIRECTORY_ENTRY, *PIMAGE_RESOURCE_DIRECTORY_ENTRY;
看一下预定义16个标识
可以看到分别对应 id,名字 4个结构体 03 05 0e 10 的id 站一个双子
高位为80 就是 高位1 地位代表 从资源表4000偏移30位置 就是下一个资源项 后面也是同样的偏移分别偏移50,68,80
30位置又是IMAGE_RESOURCE_DIRECTORY 结构体
2个资源项 id是 1,2 下一级偏移位置在98,b0 如果有会继续递归下去 直到把所有的关系找全
可以看到没找到下一个了 高位也不是1了 说明这是最后一层 代表 id=407 偏移110
rva=4160 大小=2e8 这一层分析结束 后面都是这样分析的 以此类推
0x03IMAGE_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;
这个结构也上面推到到最后的结构 前2个值
接着看4160 这个地址 转换地址foa 也是4160
这些就是 图标的属性设置 具体单个内容都是类似结构体
可以在文件的图标组看到
26 相对图标组偏移 文件物理地址 可以通过更改这个地址来显示不同图标 其实算是图标的下标 需要保证ico大小相同
对应的第一个下标ico
这篇关于WindowsPE 资源表的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南