在PE导出表中不是函数的条目
Entries that are not functions in PE exports table
我看过一个特定DLL的导出表,我在表中看到了一些奇怪的条目,所以我试图在pecoff规范中找到这个问题的答案,但没有找到任何,我希望有人可能有一个。
我在某个DLL (Qt5Core.dll)上运行了一个dumpbin,发现导出表有而不是函数 ->的条目,它们的地址指向。data节和。rdata节…例如:
const QAbstractState:: ' vftable' 67366E0C 1470QMetaObject const QEventTransition::staticMetaObject 673C15A8 6160QCoreApplication * QCoreApplication::self 6746180C 5504
看起来像一些c++变量,我想知道为什么它们在导出表中?谢谢!
numberfunctions 该模块导出的函数/符号总数。
NumberOfNames 按名称导出的函数/符号的数量。该值不是模块中所有函数/符号的数量。对于这个数字,您需要检查numberfunctions。取值为0。在这种情况下,模块只能按序号导出。如果第一种情况下没有要导出的函数/符号,则data目录下导出表的RVA为0。
从上面我们得出结论,序数表只列出了实际具有名称的导出的数量。
来源:http://win32assembly.programminghorizon.com/pe-tut7.html
导出条目不一定是函数。你可以看看我的stackoverflow线程:PE -从函数导出中区分数据
结论是明确的,数据也可以从PE文件导出。没有完美的方法来区分两者,但是一些启发式方法和运行时操作可以帮助您解决这个问题。参考我上面的帖子了解更多细节(也可以阅读评论)。
- "error: no matching function for call to"构造函数错误
- 什么时候调用组成单元对象的析构函数
- 继承函数的重载解析
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- C++模板来检查友元函数的存在
- 递归函数计算序列中的平方和(并输出过程)
- 对RValue对象调用的LValue ref限定成员函数
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 为什么使用 "this" 指针调用派生成员函数?
- 将对象数组的引用传递给函数
- 函数调用中参数的顺序重要吗
- 函数向量_指针有不同的原型,我可以构建一个吗
- 使用不带参数的函数访问结构元素
- 代码在main()中运行,但在函数中出现错误
- 内置函数可查看CPP中的成员变量
- 如何获取std::result_of函数的返回类型
- 如果使用LoadLibrary显式链接dll,则列出从PE文件导入的函数
- 在PE导出表中不是函数的条目