在LoadLibrary期间调整DLL模块名称

Hul*_*lud 5 c++ dll loadlibrary portable-executable

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

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

  • 模块名称:B.exe
  • FUNC1
  • FUNC2
  • FUNC3

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

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

谢谢,

西里尔

Aby*_*byx 1

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

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