【问题标题】:C++ Protect Process from being suspendedC++ 保护进程不被挂起
【发布时间】:2015-02-05 22:01:43
【问题描述】:

有什么方法可以防止 exe 被挂起?

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

【问题讨论】:

  • “暂停”是指退出应用程序?
  • 不,我的意思是暂停线程
  • 参考 - Suspending Thread Execution“这个函数主要是为调试器设计的。”
  • ye 如何阻止它,我不想循环“恢复线程功能”
  • 没有。没有办法阻止您的应用程序被暂停。 (根据詹姆斯的回答,你可以让它变得更加困难,但你不能阻止它。)

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


【解决方案1】:

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

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

但是有一种方法可以让这变得极其困难:解决方案包括为您的应用程序设置一个影子进程。然后应用程序和影子进程将相互监视对方的挂起状态,并在必要时恢复挂起的进程:

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

  • 1234563

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-25
      • 1970-01-01
      • 2011-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-11
      • 1970-01-01
      相关资源
      最近更新 更多