PE文件资源表

对于需要对软件汉化,修改界面的这节内容挺重要

我们可以通过RVA定位到资源表的位置

资源定义

Windows 将程序的各种界面定义为资源,包括加速键(Accelerator)、位图(Bitmap)、光标(Cursor)、对话框(Dialog Box)、图标(Icon)、菜单(Menu)、串表(String Table)、工具栏(Toolbar)和版本信息(Version Information)等。

资源有很多种类型,每种类型的资源中可能存在多个资源项,这些资源项,用不同的ID 或名称来区分。但是,要将这么多种类型的不同ID 的资源有序地组织起来是一件非常痛苦的事情,因此采取类似磁盘目录结构的方式保存。

 

常用资源类型如下:

//资源类型名称映射表
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"},
};

 

资源结构体解析

首先,资源结构体分很多,但是有用的就三个

IMAGE_RESOURCE_DIRECTORY           根目录(资源目录头)
IMAGE_RESOURCE_DIRECTORY_ENTRY       子目录(资源目录项)其中根目录下可以有很多子目录(也就是说根目录下会有子目录的)
IM

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值