DLL仅在可执行依赖项中缺少DLL_Process_attach中的代码
DLL only containing code in DLL_PROCESS_ATTACH missing from executable dependencies?
我想在本地测试一个基于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没有被链接,因为它没有被使用。添加导出的方法并在测试程序中调用它做到了困难。
相关文章:
- 挂起和取消挂起一个文件DLL
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 导入库可以跨dll版本工作吗
- 从C++dll访问C#中的一行主要参数
- 链接到自行创建的dll失败
- 为什么使用 P/Invoke 调用 dll 时,某些计算机中的 LoadLibrary 失败?
- 在调用FreeLibrary后,释放动态链接到具有相同版本的CRT堆的DLL的内存
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- 如何将图像传输到c++(dll)中的缓冲区,然后在c#的缓冲区中读/写
- C++:将外部库链接到dll库
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 不同的Visual Studio版本中缺少.dll
- 从DLL中删除类的实例
- 如何包装第三方DLL在R中使用
- 使用c#访问c++dll中带有char*参数的函数时发生AccessViolationException
- 系统.将数组移交给c#中动态加载的c++DLL时发生AccessViolationException
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 当我使用 C++ 中的 C# dll 来使用 Selenium 时,存在异常处理问题
- Python ctypes:不会按预期加载 dll
- 在 C++/CLI 中将 .NET 事件从一个 DLL 引发到另一个 DLL