无限扩展pe:9.2.1  PE结构的扩展(1)

来源:安全中国

9.2  MSIL和元498)this.style.width=498;" border=0> 
(点击查看大图)图9.3  hello.exeCLR头数据


根据表中最重要MetaData项来查看元数据在PE文件中存储格式在举例元数据RVA和大小分别是206Ch和290h转换为文件偏移就是26Ch处开始注意到这个地址和刚才CLR头结束地址24Fh的前还有点空隙IL代码正是存储在这段空间里
MetaData结构以个元数据头开始代表元数据定义由此开始下官方对MetaData Root定义:
struct STORAGESIGNATURE
{
ULONG       lSignature;              // "Magic" signature
USHORT      iMajorVer;              // Major file version
USHORT      iMinorVer;               // Minor file version
ULONG       iExtraData;              // Off to next structure of information
ULONG       iVersionString;          // Length of version
};
typedef STORAGESIGNATURE UNALIGNED * PSTORAGESIGNATURE;
struct STORAGEHEADER
{
BYTE        fFlags;                  // STGHDR_xxx flags
BYTE        pad;
USHORT      iStreams;                // How many streams are there
};





表9-2给出了元数据头中各项意义

表9-2  MetaData Root结构和介绍说明


 

 

   

    


0

4

lSignature

424A5342h就是4个固定ASCII码“BSJB”(BSJB4.Net创始人字母缩写)


4

2

iMajorVersion

元数据主版本般为1


6

2

iMinorVersion

元数据副版本般为1


8

4

iExtraData

保留0


12

4

iVersionString

接下来版本长度包含尾部0且按4字节对齐(例子中为0Ch)


16

12

pVersion

UTF8格式编译环境版本号(例子中为“v2.0.50727长度10+2)


28

1

fFlags

保留0


29

1

[Padding]

此字节无意义对齐用


30

2

iStreams

Streams个数






  • 篇文章: 9.2.1 PE结构扩展(2)

  • 篇文章: 9.1.3 第个.Net
  • Tags:  pe结构 bind9.2.116 零体积全能可扩展pe 无限扩展pe

    延伸阅读

    最新评论

    发表评论