将类函数调用链接到进程中加载的模块



我要做的是注入到一个进程中,然后使用该进程中可用的模块。通过使用GetProcAddress()并根据需要请求单个函数,这是非常直接的。

然而,我也尝试使用第三方API文件。这些文件包含我可以用来进行各种API调用的类。当将它们导入我的项目并试图编译它们时,我会得到LNK2019 unresolved external symbol错误。这个错误源于我没有导入lib文件。问题是我无法导入它们,因为我没有访问lib文件的权限。我想在注入过程中使用现有的已加载模块。

我正在努力寻找将这两个部分结合在一起的方法。如何将类文件中的各种函数调用链接到已加载到进程中的模块?如果这不可能,应该采取什么方法?

编辑:关于库文件的修改句子

您必须导入LIB。否则,链接器无法解析对函数的引用。

您可以通过使用LoadLibary/GetProcAddress将此函数用于来绕过此问题。对于类,这将很复杂。

但是,将LIB包含到DLL中有什么问题呢。

当您的模块被注入到其他程序中时,所需的DLL也被加载到进程中。如果它们已经被加载,则加载的DLL将被使用;现有DLL";使用进程中的(已加载的DLL(。

问题可能只是DLL搜索序列。。。记住:如果你使用USER32.DLL函数,你会得到已经加载的副本并使用它。使用导入库时,不会加载第二个User32.dll。

如果没有加载DLL,则在将模块注入进程时,它们将被隐式加载。

最新更新