PE文件资源解析(一)资源类型的提取

这个界面相信作为软件开发人员来说,都不会陌生。

从本章节起,分篇介绍如何来开发一个属于自己的资源提取软件。资源的提取有2种,一种是通过WindowsAPI接口来实现资源类型的枚举,一种是通过解析PE文件结构来获取资源类型的枚举。PE文件解析方式将放在后面章节,这次首先以WindowsAPI方式来进行讲解:这里主要用到3个接口EnumResourceTypes、EnumResourceNames、EnumResourceLanguages。3个接口分别是枚举资源类型、资源名称和资源语言。调用比较简单,后面章节主要介绍资源内容的解析。

常用资源类型如下:

//资源类型名称映射表
typedef struct tagRES_ID_NAME_TABLE 
{
	LPSTR	id;
	char	name[_MAX_PATH];
}RES_ID_NAME_TABLE;

static RES_ID_NAME_TABLE ResIdNameTable[0x17] = {
	{0, "Unknown"},
	{RT_CURSOR, "光标"},
	{RT_BITMAP, "位图"},
	{RT_ICON, "图标"},
	{RT_MENU, "菜单"},
	{RT_DIALOG, "对话框"},
	{RT_STRING, "字符串表"},
	{RT_FONTDIR, "字体目录"},
	{RT_FONT, "字体"},
	{RT_ACCELERATOR, "加速器表"},
	{RT_RCDATA, "自定义资源"},
	{RT_MESSAGETABLE, "消息表"},
	{RT_GROUP_CURSOR, "图标组"},
	{0, "Unknown"},
	{RT_GROUP_ICON, "光标组"},
	{0, "Unknown"},
	{RT_VERSION, "版本信息"},
	{RT_PLUGPLAY, "即插即用资源"},
	{RT_VXD, "Vxd"},
	{RT_ANICURSOR, "动态光标"},
	{RT_ANIICON, "动态图标"},
	{RT_HTML, "HTML文档"},
	{RT_MANIFEST, "XPManifest"},
};

猜你喜欢

转载自blog.csdn.net/u012156872/article/details/105661789