汇编语言中,计算字节数大小:
一个Byte是1字节
word类型,即一个字,又两个字节构成。占据2字节
long类型,占据4字节
dword占据4字节。因为是double word
RVA:Relative virtual address
IMAGE在PE文件中出现,它是“映像”的意思。说明磁盘中的文件和内存中的文件并非完全相同。故将加载到内存中的PE文件加以IMAGE以标识。
一般的文件结构包含了以下属性:
DOS头,DOS存根,NT头,节区头,节区。(节区又包含text,data,rsrc)
PE头:
IMAGE_DOS_HEADER:
e_magic代表DOS签名:4D5A->ASCII("MZ")
e_lafnew,nt头的偏移
IMAGE_NT_HEADERS:
IMAGE_FILE_HEADER:
1.machine 机器码,表示CPU
2.numberofsections,指出文件中存在的分区数量
3.sizeofoptionalheader,指出IMAGE_OPTIONAL_HEADER32的长度
4.characterristics,标识文件的属性。0x0002:file is executable,0x2000:file is a DLL
IMAGE_OPTIONAL_HEADER32:
1.magic
2.AddressOfEntryPoint
3.ImageBase
4.SectionAlignment,FileAlignment
5.SizeOfImage
6.SizeOfHeader
7.Subsystem
8.NumberOfRvaAndSizes
9.DataDirectory
节区头由IMAGE_SECTION_HEADER构成。
计算RVA->RAW公示:Raw-PointerToRawData=Rva-VitualAddress
Raw=Rva-VitualAddress+PointerToRawData
其中,Rva指磁盘文件地址,Raw指内存文件地址