可以由Windows上的不同用户(管理员,非管理员)一次运行的应用程序。它的关键部分无法由不同(或相同)用户同时执行。
为防止通过调用WinApi使用我的Global Mutex:
CreateMutex(NULL,true,"Global\\MyMutex");
,然后在完成工作后释放Mutex。添加“全局”前缀以使Mutex在所有Windows会话之间可见。 (这是可选的,但我想介绍一下这个互斥对象不是本地的。)
现在是问题所在:
假定有一个攻击者想要阻止任何人执行关键部分,因此她创建了一个程序,该程序创建名称为"Global\\MyMutex"
的互斥量,并且从不释放该互斥量...这样,她就能够对其他用户的应用程序进行DoS攻击-因为他们无法访问关键部分。
问题是-如何使用Global Mutex防止这种攻击情况?