导出表位置在可选头成员:
0x60 _IMAGE_DATA_DIRECTORY DataDirectory[16];
有16个目录 每个目录占8个字节
第一个目录:导出表结构
IMAGE_DIRECTORY_ENTRY_EXPORT
struct _IMAGE_DATA_DIRECTORY {
0x00 DWORD VirtualAddress;
导出表的内存地址偏移,RAV
0x04 DWORD Size;
导出表的大小,没有意义,导出表有自己的方式约定它有多大
};
VirtualAddress;
导出表的内存地址偏移(RAV),根据这个值,去找真正的导出表在哪里.这个
VirtualAddress
是拉伸后的内存偏移,如果在文件中寻找 则需要把这个值转换成foa再去寻找。
(
之前的拉伸只是为了练习方便,
实际对文件的操作
,只需要一个文件缓冲区,用RVA转换成FOA,然后进行操作。对已经运行在内存中程序操作 则不需要转换,用模块地址+这个偏移即可
)
Size;
导出表的大小,没有意义,导出表有自己的方式约定它有多大,这个值把它任意改掉也不会影响程序的运行.

本文详细介绍了Windows可执行文件(PE)结构中的导出表,包括函数序号表、函数名称表和函数地址表的相互关系。重点讲解了如何根据函数名字和导出序号查找函数地址,以及倒序查找函数名的方法,并在批量遍历查询时的注意事项。
导出表解析&spm=1001.2101.3001.5002&articleId=126638813&d=1&t=3&u=16cc1464087b45af93456e95f725d732)

被折叠的 条评论
为什么被折叠?



