在DLL中,函数表是如何构造的?

时间:2010-02-21 22:43:16

标签: windows dll assembly

我一直在研究不明确支持我的操作系统的设备库的实现。特别是,我有一个反汇编的DLL,以及相当数量的支持源代码。现在,函数表/导出表是如何构建的?

我的理解是.data部分的第一个结构是一个RVA表。接下来是通过索引链接到第一个地址表的字符串表。这对我来说很有意义,因为链接器可以在符号和地址之间进行转换。

序数引用的函数如何适合这张图片?如何知道哪个函数具有这样的序数,以及链接器如何解决这个问题呢?换句话说,鉴于其他一些DLL导入SOME_LIBRARY_ordinal_7,链接器如何知道要使用哪个函数?

谢谢,全部!

修改的 更多信息......

我正在使用FTDI库,并希望解决正在调用的函数。特别是,我看到类似的东西:

extern FTD2XX_Ordinal_28: near

我如何确定引用哪个函数,以及链接器如何执行此操作?

1 个答案:

答案 0 :(得分:3)

要了解链接器和加载器如何在Windows上运行,可能最容易获得的信息来自Matt Pietrek十多年前所做的一系列:

最大最好的一个: