-
-
求助:关于PE文件加载过程
-
发表于:
2005-1-28 23:22
7803
-
大家好,我是一个正在学习PE文件格式的新人,在我的学习过程中遇到了一些困惑,在网上也搜索了很长时间的相关文章,可是几乎没有找到告答案。希望大家可以帮助我,谢谢。
我想知道的问题是:
比如说:TEST.EXE文件被加载程序加载时,加载程序遍历了它的IMPOERT段,得到了该EXE文件所需要的DLL文件名DLLTEST.DLL以及该文件中函数名FUNCTIONTEST(假设是按函数名导入)之后,加载程序会对文件名DLLTEST.DLL进行搜索得到文件的路径,然后,加载程序遍历DLLTEST.DLL的EXPORT段得到2个数组(AddressofNames所指向的函数名数组和AddressofFunctions所指向的函数RVAS数组),然后比较函数名数组中的函数名与FUNCTIONTEST,得到FUNCTIONTEST在函数名数组中的位置n,然后再又RVAS数组的首地址+n*4得到FUNCTION函数的入口地址。加载程序便将FUNCTIONTEST的机器码加载到TEST.EXE进程的某个地址空间中。 ①
(以上纯属个人猜测,感谢大家指正)
我想知道的问题是:
PE加载器此时如何让进程空间中的FUNCTIONTEST函数机器码与EXE文件中调用函数FUNCTIONTEST的代码部分相联系的呢?
TEST.EXE文件中是否中是否存在一个符号表来保存所有的符号名,并有一个地址表来保存与符号表中所对应的地址数据呢
[课程]Linux pwn 探索篇!