C ++ Protect Process被暂停

时间:2015-02-05 22:01:43

标签: c++ windows visual-studio-2010 suspend

有没有办法保护exe不被暂停?

请注意,我是应用程序的所有者。

2 个答案:

答案 0 :(得分:1)

有一些工具,如Sysinternals ProcessExpert,允许您暂停任何进程。如果用户具有管理员授权,则无法避免这种情况。

This SO answer显示了三种暂停Windows进程的解决方案。

然而,有一种方法可以使这非常困难:解决方案包括为您的应用程序设置阴影处理。然后,应用程序和影子过程应监视彼此的暂停状态,并在必要时恢复暂停的过程:

  • 由于流程必须一个接一个地暂停,这种双重方法可确保两个流程中的一个处于活动状态并可以防止暂停。

  • 然而,这种持续监控是CPU占用的,因此您真的认为是否有必要这样做,并且可以接受您的应用程序的性能。

如果您想阻止暂停以避免使用调试器对代码进行逆向工程,那么您还有另一个更有效的选择。在整个关键代码段中插入几个定时器调用,并检查异常执行时间是否显示暂停/调试,如果是这样,则停止代码。

答案 1 :(得分:0)

根据msdn。您需要在创建线程时禁用THREAD_SUSPEND_RESUME访问权限。这样可以防止它被暂停