[PE结构]导出表结构浅析
导出函数的总数--》以导出函数序号最大的减最小的+1,但导出函数序号是可自定义的,所以NumbersOfFunctions是不准确的
1.根据函数名称找,函数名称表-》对应索引函数序号表中的函数地址表索引-》函数地址表
2.根据函数序号找,序号-base==》函数地址表的索引
盲猜该表的形成过程:
最开始可能直接想就是函数名对应索引就是函数序号,如果通过函数序号,就直接当做索引
2.但随后由于部分函数仅仅以序号导出,所以函数名称就没有,此时如果再以序号一一映射的方式进行索引,就会产生函数不对应的现象,所以就有了中间的函数序号表
所以函数序号表是函数名称映射到函数地址表的联系,和函数序号查找没有关系
3.随后,出现了自定义函数序号,这个时候如果函数地址表还是简单的映射,那么当第一个序号为1000时,前999个函数地址空间其实都是无效的,也就是浪费了,所以采用了Base的方法,即以相对方式,进行空间设置
那有些就会疑问,既然可以这样,如果第一个序号为1000,第二个序号为2000,那中间不还是浪费了,那为什么函数序号名不再建一个类似于函数序号表一样的,进行映射呢?
最开始,我认为不这样做的目的是直接找更快捷,而且如果采用映射,那还要再建一个表进行映射,那也会占用空间,所以个人觉得这种无异于就是以空间换时间。采用相对序号也只是一种优化方式而已