对PE资源的研究
前言:没什么好说的,发现这方面的资料全是英文的,于是我一边研究,一边翻译,一边写出自己的心得。 希望大家尊重我的劳动成果,转贴保持完整。 资源一般使用树来保存,通常包含3层,在NT下,最高层是类型,然后是名字,最后是语言。 一个PE文件是否包含资源文件,通常检测块表(Section Table)中是否含有''.rsrc'',不过这个方法对有些PE文件无效。 一个类型表结构如下 —————————————————————————— | RESOURCE DIRECTORY | —————————————————————————— | RESOURCE DATA | —————————————————————————— 资源表1(Resource File Layout) 其中的资源目录(RESOURCE DIRECTORY)结构如下: —————————————————————————— | RESOURCE FLAGS | —————————————————————————— | TIME/DATE STAMP | —————————————————————————— | MAJOR VERSION |MINOR VERSION | —————————————————————————— | # NAME ENTRY |# ID ENTRY | —————————————————————————— | RESOURCE DIR ENTRIES | —————————————————————————— ×ê?′±í2£¨Resource Table Entry£? ?úDELPHI?Dμ?éê?÷ { Resources } PIMAGE_RESOURCE_DIRECTORY = ^IMAGE_RESOURCE_DIRECTORY; IMAGE_RESOURCE_DIRECTORY = packed record Characteristics : DWORD; TimeDateStamp : DWORD; MajorVersion : WORD; MinorVersion : WORD; NumberOfNamedEntries : WORD; NumberOfIdEntries : WORD; end ???D£o RESOURCE FLAGS í¨3£éè???a0 TIME/DATE STAMP ×ê?′±àò??÷?¨á¢′?×ê?′μ?ê±??/è??ú£??é?ü?a0 MAJOR/MINOR VERSION 版本信息 # NAME ENTRY 使用名字的资源条目的个数,包含一个使用名字的目录条目的数组。 # ID ENTRY 使用ID数字的资源条目的个数,包含一个32位的整数ID号,同用名字一样。 这个目录紧接着会是一个不定长度的目录条目,不管用的名字还是ID,都是用升序排列。 这个不定长度的目录结构如下: 31 0 ———&mdash |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |