WindowsPE 第七章 资源表

本文详细介绍了Windows PE中的资源表,包括资源的分类如位图、光标、图标、菜单、对话框和自定义资源,以及PE资源表的组织方式,如三级目录结构和相关数据结构如IMAGE_RESOURCE_DIRECTORY和IMAGE_RESOURCE_DATA_ENTRY。通过对资源表的解析,读者可以更好地理解和定位PE文件中的资源数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

资源表

    在程序设计中,总会设计一些数据。这些数据可能是源代码内部需要用到的常量,菜单选项、界面描述等;也可能是源代码外部的,比如程序的图标文件、北京音乐文件、配置文件等,以上这些数据统称为资源。按照程序与数据分离的设计思想,最理想的方案是单独为程序所需要的数据安排一节来存储-PE中的资源就是这么做的。

7.1资源分类

    资源数据在PE里是最复杂的一种。其难度主要体现在对资源数据的遍历定位上,以及资源块的不易阅读性。因为即使通过信息定位方法找到了资源块,其内部结构还需要进一步解析。首先来看资源分类的历史。

    刚开始资源类型方面,以为16个种类足以了,然而后来发现并不够,这类问题再之前很容易理解。就如千年虫问题...

程序中常用的六类资源包括:

位图资源、光标资源、图标资源、菜单资源、对话框资源、自定义资源。

7.1.1  位图、光标、图标资源

    位图、光标和图标是标识程序用途、修饰程序的最简约的符号,一般对应icocuranibmp文件内容。这三种资源最终都是基于图片文件。在对资源脚本文件进行定义时,通常使用文件名,最后由资源编译器rc.exe将像素数据读入,在转化为二进制格式存储在PE的资源表指向的位置。位图、光标、图标这三类资源在脚本文件中的定义格式如下:


 

7.1.2  菜单资源

    菜单资源是大部分应用程序都具备的资源。在资源脚本文件中,菜单的定义格式如下所示:

菜单ID MENU [DISCARDABLE]

BEGIN

菜单项定义

......

END

7.1.3  对话框资源

    对话框也是大部分程序具备的一种资源。弹出式对话框人性化地排列着文本框、说明文字和按钮等可视化控件,使复杂的计算机操作变得容易。语法如下:

对话框ID DIALOG[DISCARDABLE] x坐标,y坐标,宽度,高度[options]

BEGIN

子窗口控件1

子窗口控件2

......

END

对话框的可可选属性及描述:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值