C++ PE导出表中不是函数的条目
我看过一个特定DLL的导出表,Iv'e在表中看到了一些奇怪的条目,所以我试图在pecoff规范中找到这个问题的答案,但没有找到,我希望有人可能有一个 我在某个DLL(Qt5Core.DLL)上运行了一个dumpbin,发现exports表中有不是函数的条目->有一些条目的地址指向.data节和.rdata节。。。 例如: 常量QAbstractState::`vftable'67366E0C 1470 QMetaObject常量QEventTransition::staticMetaObject 673C15A8 6160 QCoreApplication*QCoreApplication::self 6746180C 5504C++ PE导出表中不是函数的条目,c++,debugging,ms-access,portable-executable,pe-exports,C++,Debugging,Ms Access,Portable Executable,Pe Exports,我看过一个特定DLL的导出表,Iv'e在表中看到了一些奇怪的条目,所以我试图在pecoff规范中找到这个问题的答案,但没有找到,我希望有人可能有一个 我在某个DLL(Qt5Core.DLL)上运行了一个dumpbin,发现exports表中有不是函数的条目->有一些条目的地址指向.data节和.rdata节。。。 例如: 常量QAbstractState::`vftable'67366E0C 1470 QMetaObject常量QEventTransition::staticMetaObject
这好像是一些C++变量,我想知道它们为什么在导出表中?
谢谢 导出条目不必是函数。 您可以查看我的stackoverflow线程: 结论很清楚,数据也可以从PE文件导出。 没有完美的方法来区分两者,但是一些启发式和运行时操作可以帮助您解决这个问题。
有关更多详细信息,请参阅我的上述帖子(同时阅读评论)。NumberOfFunctions 此模块导出的函数/符号总数 NumberOfNames 按名称导出的函数/符号数。该值不是模块中所有功能/符号的数量。对于该数字,您需要检查NumberOfFunctions。此值可以是0。在这种情况下,模块只能按序号导出。如果在第一种情况下没有要导出的函数/符号,则数据目录中导出表的RVA将为0 从上面我们可以得出结论,序号表只列出了实际具有名称的导出的数量
来源:导出数据是受支持的方案。在这种情况下,没有什么特别的。