一、概述
想要获取一个可执行文件(PE文件)里包含的资源文件,首先要解析可执行文件,得到资源存储的地址及大小,可参考 https://blog.youkuaiyun.com/zhyulo/article/details/85717711 。然后,根据资源存储方式,得到各资源的数据内容及其大小,可参考 https://blog.youkuaiyun.com/zhyulo/article/details/85930045 。
PE文件的资源中,快捷键的资源类型ID=9。在RC文件中,快捷键的定义方式如下:
IDR_ACCELERATOR ACCELERATORS DISCARDABLE
BEGIN
"O", ID_FILE_OPEN, VIRTKEY, CONTROL, NOINVERT
"S", ID_FILE_SAVE, VIRTKEY, CONTROL, NOINVERT
END
二、快捷键的资源结构
快捷键在资源中,以AccelTableEntry快捷键结构数组方式存储,该结构体定义如下:
struct AccelTableEntry
{
WORD fFlags;//功能键
WORD wAnsi;//虚拟键值
WORD wId;//快捷键id
WORD padding;
};
fFlags: 功能键,比