如何防止我的dll在某个进程未处于活动状态时运行



所以我想让我的dll只能通过我的注射器注射,我认为一个好方法是只让我的dll能够在注射器运行时打开。但我不知道该怎么做。

正如Mayur在注释中提到的,您的DLL可以使用EnumProcesses()枚举正在运行的进程,并获取它们的文件名以查找与您的注入器匹配的内容。可以在DLL_PROCESS_ATTACH阶段在 DLL 的入口点函数中执行此操作。如果未检测到注入器,则入口点可以返回 FALSE 以中止加载。

或者,检测注入器的一种更简单的方法是让它在全局内核命名空间中通过CreateMutex()创建命名互斥锁,然后让 DLL 入口点尝试通过 OpenMutex() 访问同一对象,如果互斥锁不存在,则加载失败。 有关更多详细信息,请参阅使用命名对象。

相关内容

  • 没有找到相关文章

最新更新