在LoadLibrary期间调整DLL模块名称

时间:2011-11-17 17:32:11

标签: c++ loadlibrary dll portable-executable

我想在运行时加载我的应用程序(A.exe)中的第三方二进制插件(P.dll)。此插件是为另一个应用程序(B.exe)构建的。

该插件在B.exe模块上具有隐式dll导入,如:

  • 模块名称:B.exe
  • func1
  • func2
  • FUNC3

我已经从A.exe导出了函数func1,func2和func3,但我无法使用LoadLibrary加载dll,因为没有名为“B.exe”的模块。

有没有比重命名我的应用程序“B.exe”或修补P.dll的PE更好的事情?

谢谢,

西里尔

1 个答案:

答案 0 :(得分:1)

您可以创建假B.exe,(实际上它可以是DLL),并将B.exe导出重定向到A.exe。

重定向可以通过转发导出来完成,请参阅“导出转发”部分here