DLL仅在可执行依赖项中缺少DLL_Process_attach中的代码

DLL only containing code in DLL_PROCESS_ATTACH missing from executable dependencies?

本文关键字:DLL Process attach 代码 依赖 可执行      更新时间:2023-10-16

我想在本地测试一个基于DLL注入的项目。在目标环境中,dll通过appinit_dll加载,这意味着它在首次执行过程时大约在同一时间加载了user32.dll。所有这些都起作用,DLL创建了一个日志文件,证明了成功。

我现在希望在受控环境中测试DLL的行为,特别是在我在Visual Studio 2015中创建的测试Win32程序中。我从DLL项目中获取了生成的LIB文件并添加了它是项目设置 -> linker->输入下的附加依赖关系,添加了包含LIB文件的目录到VC 目录 ->库目录,并将DLL文件与生成的可执行文件一起放置。但是,当我运行可执行文件时,我看不到日志文件。

我决定使用依赖性沃克进一步调查,我看不到我的dll,所以看来从未添加依赖。

一些其他信息:

  • 两者都是使用相同的目标体系结构构建的
  • Win32测试应用程序是使用/MDD(多线程调试DLL)构建的
  • 测试应用程序不使用DLL中的任何导出功能,因为我要测试的只是在DLL_Process_attach中执行的代码做正确的事情

我可以使用单独的注入过程进行测试以在远程测试过程中创建线程,但是我希望复制在过程执行中加载的DLL的行为,因此此替代方案不是理想的。

任何帮助将不胜感激。谢谢: - )

rbmm的答案是正确的。问题是DLL没有被链接,因为它没有被使用。添加导出的方法并在测试程序中调用它做到了困难。