从非托管库的方法名获取参数类型
Get parameter types from method names of an unmanaged library?
我在这篇文章中问过如何枚举c++ dll库的方法,在这里我找到了解决方案p/调用dbghelp.dll库。
我的问题是:使用dbghelp.dll一旦我有一个方法名,我可以检索它的重载(如果它们存在)和它的参数类型知道我应该如何调用该方法里面?
在这个MSDN url中是dbghelp.dll lib的函数文档,但我不确定其中一个函数是否可以帮助我。
PS:我对PE的了解非常低,这就是为什么我要求解决方案p/调用其他方法,但如果不可能使用dbghelp.dll我想知道替代方案和完成任务的步骤。
一般来说,非托管库(例如:从c++编译的dll)是不可能的。PE格式没有办法对这些信息进行逆向工程(这是dll和lib与.h文件一起分发的原因之一)。一些逆向工程工具分析函数序,对函数参数进行猜测和启发式,但这仅仅是猜测。对于在库中导出的c++函数,可能使用混乱的名称info可以检索此信息。vc++名称编辑。但这是编译器实现依赖的信息,可以随时改变任何东西。
在一些托管语言(例如:。net)的库中,仅使用PE格式作为其自定义格式的容器(PE只运行并调用加载自定义格式的。net运行时),此信息保存为自定义格式的元数据信息。
相关文章:
- 有没有办法在从编译器获取参数时避免预处理器宏?
- 如何使用可变参数模板获取参数的变量号及其大小C++
- 如何从 x64 程序集中的堆栈中获取参数?
- 从命令行获取参数时出现问题
- 函数获取参数的变量列表并将它们转换为一系列字节?
- 当函数在C++中获取参数时,为什么要使用取消引用
- C++是否在 for 循环之前获取参数
- 为什么相同的函数签名只有区别,另一个通过 const 获取参数是重新定义?
- 获取参数的子类
- 如何循环访问在 cmd 中获取参数的 exe 文件
- 一种从元组/数组获取参数包的方法
- 如何获取参数包中元素的索引
- 延长函数的寿命延长 由 const& 获取参数并由 const& 返回
- 我的二传手可以获取参数,但实际上不能?
- 如何获取参数[0]
- 可以用于获取参数类型的 decltype
- 使用常量,获取参数表而不是复制
- C++11、14 或 17 是否提供了一种从 decltype() 中获取参数的方法?
- 根据给定的索引集获取参数包的子集
- 为什么 std::not1() 通过常量引用而不是按值获取参数