08 2016 档案
摘要:资源表是一个树形结构,可以设置成2的31次方的层数,Windows 使用了3级: 类型->名称->语言 其中涉及到四个结构: Data Description Resource Directory Tables (and Resource Directory Entries) A series of tables, one for each group of nodes ...
阅读全文
摘要:源代码如下: typedef struct _IMAGE_BASE_RELOCATION { DWORD VirtualAddress; DWORD SizeOfBlock; // WORD TypeOffset[1]; } IMAGE_BASE_RELOCATION; typedef IMAGE_BASE_RELOCATION UNALIGNED * PIMAGE...
阅读全文
摘要:typedef struct _IMAGE_EXPORT_DIRECTORY { DWORD Characteristics; // 未使用,总为0 DWORD TimeDateStamp; // 文件创建时间戳 WORD MajorVersion; // 未使用,总为0 WORD MinorVersion; ...
阅读全文
摘要:在 PE文件头的 IMAGE_OPTIONAL_HEADER 结构中的 DataDirectory(数据目录表) 的第二个成员就是指向输入表的。每个被链接进来的 DLL文件都分别对应一个 IMAGE_IMPORT_DESCRIPTOR (简称IID) 数组结构。 在这个 IID数组中,并没有指出有多
阅读全文
摘要:RVA是相对虚拟地址(Relative Virtual Address)的缩写。RVA是当PE 文件被装载到内存中后,某个数据位置相对于文件头的偏移量。 例如:导入表的位置和大小可以从PE文件头中IMAGE_OPTIONAL_HEADER32结构的数据目录字段中获取,对应的项目是DataDirectory字段的第2个IMAGE_DATA_DIRECTORY结构。从IMAGE_DATA_DIRECT...
阅读全文
摘要:IMAGE_SECTION_HEADER 的源代码如下: 每个区块表长度占40个字节。 * 表示需要注意的字段,最有用的是 SizeOfRawData 、 PointerToRawData 和Characteristics 字段。 Name * 此字段时区块名。(一句话:名字而已,没什么用) 要求:
阅读全文
摘要:结构体源代码如下: typedef struct _IMAGE_OPTIONAL_HEADER { // // Standard fields. // +18h WORD Magic; // 标志字, ROM 映像(0107h),普通可执行文件(010Bh) +1Ah BYTE MajorLinkerVer...
阅读全文
摘要:源代码如下: typedef struct _IMAGE_FILE_HEADER { +04h WORD Machine; // 运行平台 +06h WORD NumberOfSections; // 文件的区块数目 +08h DWORD TimeDateStamp; // 文件创...
阅读全文
摘要:源代码如下: typedef struct _IMAGE_NT_HEADERS { +00h DWORD Signature; // 固定为 0x00004550 根据小端存储为:"PE.." +04h IMAGE_FILE_HEADER FileHeader; +18h IMAGE_OPTIONAL_HEADER32 OptionalHeader; } IMAGE_NT_HE...
阅读全文
摘要:typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header WORD e_magic; // Magic number 固定为"MZ" 即, 4Dh 5Ah WORD e_cblp; // Bytes on last page of f...
阅读全文