第5天:《加密与解密》-PE文件格式(二)
区块
区块表
区块表紧跟IMAGE_NT_HEADERS,是一个IMAGE_SECTION_HEADER结构数组。
告诉编译器将数据插入一个区块:
链接器设置合并区块
区块的对齐值:
FileAlignment定义了磁盘区块的对齐值,是200h的倍数,不足补00h。
SectionAlignment定义了内存中的对齐值,是1000h的倍数,不足补00h。
.NET文件的内存对齐值为8KB。
文件偏移与虚拟地址的转换
关系:
输入表
可执行文件使用来自其他DLL的代码或数据的动作称为输入。
输入函数的调用:
高效:
低效:
一般是低效形式。
优化:
输入表的结构:
IMAGE_IMPORT_DESCRIPTOR(IID):
OriginalFirstThunk 与 FirstThunk相似,指向相同的数组。
数组中有IMAGE_THUNK_DATA结构:
输入地址表:
PE装载器在加载程序时会搜索INT中的函数,将输入函数的地址写入IAT。