当某个进程不活动时如何防止我的dll运行

时间:2019-01-21 07:00:07

标签: c++ dll dll-injection

因此,我想让自己的dll只可被我的注射器注入,而我想这样做的一个好方法是仅让我的dll在注入器运行时才能打开。但是我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

如Mayur在评论中所述,您的DLL可以enumerate running processes EnumProcesses()使用entry point function并获取其文件名以寻找与您的注射器匹配的文件。您可以在DLL_PROCESS_ATTACH阶段在DLL的CreateMutex()中执行此操作。如果未检测到注射器,则您的入口点可以返回FALSE来中止负载。

或者,检测注入器的一种更简单的方法是让其通过全局内核名称空间中的OpenMutex()创建一个命名的互斥体,然后让DLL入口点尝试通过{{3 }},如果互斥对象不存在,则加载失败。有关更多详细信息,请参见Using Named Objects