第九讲,资源表解析
|
?
我们还是继续,看资源类型为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的数据了. 我们看下.
可以看出,很像图标资源了,那么此时,我们去看下我们的图标二进制,是不是这个. 对比文件
(编辑:网站开发网_盐城站长网 ) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |






