加入收藏 | 设为首页 | 会员中心 | 我要投稿 网站开发网_盐城站长网 (https://www.0515zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

第九讲,资源表解析

发布时间:2021-03-06 06:30:11 所属栏目:站长百科 来源:网络整理
导读:副标题#e# 一丶熟悉Windows管理文件的方法 首先,为什么标题是这个,主要是为了下边讲解资源方便,因为资源结构体很乱.如果直接拿出来讲解,那么就会很晕. 1.windows管理文件方法 树形结构 可以看出结构 根目录 子目录 文件.xxx 子目录 子目录 ( 子目录里面还可

?

第九讲,资源表解析

我们还是继续,看资源类型为3的,通过上图,我们得出,资源数据类型为三的(ICON)的高4个字节的高1位还是8

也就会80000140,那么意思就是又指向了一个新的"根目录"

5.继续寻找新的根目录

上图得出 偏移是140? FA = 7800 + 140? = 7940

那么文件位置7940是新的根目录,接着数16个字节.

?

第九讲,资源表解析

我们看到7940位置是一个新的根目录,那么我们看出,它按照ID分类,就一项了,那么下面8个字节就是数据目录项了.(子目录)

那么我们由此得出,它的高位不是1,

现在的 00000238 高位不是1了,那么根据 "子目录"结构体的定义,高位不是1那么这个RVA偏移则是指向了一个文件结构体的偏移

我们继续计算FA,一致FA = 7800,得出的RVA = 238? 则FA = 7800+238 = 7A38h

6.定位资源数据(文件)

那么我们定义为7A38的位置,看下资源数据结构是什么样子

为了防止大家结构体忘记,重新拷贝到这里观看.

typedef struct _IMAGE_RESOURCE_DATA_ENTRY {
    DWORD   OffsetToData;
    DWORD   Size;
    DWORD   CodePage;
    DWORD   Reserved;
} IMAGE_RESOURCE_DATA_ENTRY,*PIMAGE_RESOURCE_DATA_ENTRY;

就第一个成员有用,4个字节,表示ICON的RVA偏移.

那么定位到7A38

?

第九讲,资源表解析

得出第一个成员的RVA偏移是 0001c018

RVA = 1C018

按照FA = RVA?,的知刚才的RVA = 1B000

求FA = ?

FA = 1C018 - 1B000 + 7800 =? 8818

那么文件偏移8818的位置,则是ICON的数据了.

我们看下.

第九讲,资源表解析

可以看出,很像图标资源了,那么此时,我们去看下我们的图标二进制,是不是这个.

对比文件

第九讲,资源表解析

(编辑:网站开发网_盐城站长网 )

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!