一、移动导出表
第一步:在DLL中新增一个节,并返回新增后的FOA
第二步:复制AddressOfFunctions
长度:4*NumberOfFunctions
第三步:复制AddressOfNameOrdinals
长度:NumberOfNames*2
第四步:复制AddressOfNames
长度:NumberOfNames*4
第五步:复制所有的函数名
长度不确定,复制时直接修复AddressOfNames
0X123456
第六步:复制IMAGE_EXPORT_DIRECTORY结构
第七步:修复IMAGE_EXPORT_DIRECTORY结构中的
AddressOfFunctions
AddressOfNameOrdinals
AddressOfNames
第八步:修复目录项中的值,指向新的IMAGE_EXPORT_DIRECTORY
二、移动重定位表
将重定位表复制一份到新增的节
VirtualAddress指向新增的地址