我一直在研究不明确支持我的操作系统的设备库的实现。特别是,我有一个反汇编的 DLL,以及大量的支持源代码。现在,功能表/导出表是如何构造的?
我的理解是,第一个结构.data
部分是 RVA 表。接下来是通过索引链接到第一个地址表的字符串表。这对我来说很有意义,因为链接器可以在符号和地址之间进行转换。
序数引用的函数如何适应这张图?如何知道哪个函数具有这样那样的序号,链接器如何解决这个问题?换句话说,考虑到一些其他 DLL 导入SOME_LIBRARY_ordinal_7
,链接器如何知道要使用哪个函数?
谢谢大家!
edit更多信息...
我正在使用 FTDI 库,并且想确定正在调用哪个函数。特别是,我看到类似的东西:
extern FTD2XX_Ordinal_28: near
我该如何确定正在引用哪个函数,以及链接器如何做到这一点?
要了解链接器和加载器在 Windows 上的工作原理,最容易获取的信息可能来自 Matt Pietrek 十多年前撰写的一组专栏:
- 1997 年 7 月:http://www.microsoft.com/msj/0797/hood0797.aspx http://www.microsoft.com/msj/0797/hood0797.aspx
- 1998 年 4 月:http://www.microsoft.com/msj/0498/hood0498.aspx http://www.microsoft.com/msj/0498/hood0498.aspx
- 1999 年 9 月:http://www.microsoft.com/msj/0999/hood/hood0999.aspx http://www.microsoft.com/msj/0999/hood/hood0999.aspx
最大和最好的一个:
-
窥探 PE 内部:Win32 可移植可执行文件格式之旅 http://msdn.microsoft.com/en-us/library/ms809762.aspx(从 1994 年开始!)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)