C++,在枚举加载的模块时找不到加载的 C# DLL

标签 c++ dll process module

感谢您花时间阅读本文。

情况基本上是,我使用 EnumProcessModulesEx 枚举加载进程中的所有模块。我已验证我使用 GetCurrentProcess 获得的流程是正确的(通过 ID)。我似乎得到了所有加载的模块,除了我想要的那个!它是一个 C# DLL,仅在调用 C# DLL 函数时加载。我确保在运行枚举函数之前加载了 DLL。此 C# DLL 不显示是否有原因?

我还在我的 C++ 代码中加载了几个其他 C# DLL 之后放置了这个枚举。它似乎也没有找到那些。所有这些 C# DLL 都是动态加载的。我认为这无关紧要,因为 a) 所有内容都映射到进程地址空间,并且 b) 我有一个注入(inject)的 C++ DLL(动态加载?),我发现它很好。我的目标是能够 Hook C# DLL 函数,因此能够找到这些 C# DLL 是这个项目中必须的。

再次感谢大家提供任何提示或见解! =)

最佳答案

EnumProcessModulesEx 不会枚举 .Net DLL。它仅枚举 native DLL。

您可以使用当前 AppDomainGetAssemblies 方法来枚举 .Net DLL。

关于C++,在枚举加载的模块时找不到加载的 C# DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6658394/

相关文章:

c++ - Visual Studio 2010 找不到 iostream

c++ - 保持 shared_ptr use_count() 为 1

c++ - 通用 Windows 平台 Direct3D C++ 应用程序上的 60 FPS 游戏循环

powershell - 如何使用PowerShell获取CRM流程?

r - 如何从 CONDOR 获取队列号到你的 R 作业中

python - 用调用子进程替换当前进程?

c++ - 条件不起作用,谁能解释这是为什么?

c++ - C++ : Visual C++ mangles method signature differently from mangled method in dll 中 Unresolved external 问题

.net - 我如何解决 log4net 不断更改 publickeytoken 的问题

C# 和 void 指针