一、概述
想要获取一个可执行文件(PE文件)里包含的资源文件,首先要解析可执行文件,得到资源存储的地址及大小,可参考 https://blog.youkuaiyun.com/zhyulo/article/details/85717711 。然后,根据资源存储方式,得到各资源的数据内容及其大小,可参考 https://blog.youkuaiyun.com/zhyulo/article/details/85930045 。
PE文件的资源中,菜单的资源类型ID=4,菜单可能通过字符串命名,但大部分都是通过ID区分命名,而菜单中的子菜单通过ID区别,菜单名只做信息提示及快捷键,不是区分子菜单的元素。菜单资源的存放实质上是一种顺序储存的多叉树式数据结构,用标志位来记录树节点间的关系。

图1 深度优先存储的多叉树结构
二、菜单资源结构
1.菜单头结构
菜单资源的指针指向的起始位置一般有4个字节的0,定义如下:
struct MenuHeader
{
WORD wVersion;//版本号,为0
WORD cbHeaderSize;//头大小,为0
};
菜单头结构结构后紧跟着的是菜单项。
2.菜单项结构
&nbs

本文详细介绍了PE文件中的菜单资源结构,包括菜单头结构和菜单项结构,探讨了菜单资源作为顺序储存的多叉树式数据结构,并提供了示例程序展示如何解析和提取菜单资源。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



