因此,我想让自己的dll只可被我的注射器注入,而我想这样做的一个好方法是仅让我的dll在注入器运行时才能打开。但是我不知道该怎么做。
答案 0 :(得分:0)
如Mayur在评论中所述,您的DLL可以enumerate running processes EnumProcesses()
使用entry point function并获取其文件名以寻找与您的注射器匹配的文件。您可以在DLL_PROCESS_ATTACH
阶段在DLL的CreateMutex()
中执行此操作。如果未检测到注射器,则您的入口点可以返回FALSE来中止负载。
或者,检测注入器的一种更简单的方法是让其通过全局内核名称空间中的OpenMutex()
创建一个命名的互斥体,然后让DLL入口点尝试通过{{3 }},如果互斥对象不存在,则加载失败。有关更多详细信息,请参见Using Named Objects。