windows — C ++ защищает процесс от приостановки

Есть ли какой-нибудь возможный способ защитить exe от приостановки?

Обратите внимание, что я владелец приложения.

2

Решение

Есть такие инструменты, как Sysinternals ProcessExpert, который позволяет приостановить любой процесс. Если у пользователя есть права администратора, избежать этого невозможно.

Это так ответ показывает три решения, чтобы приостановить процесс Windows.

Однако есть способ сделать это чрезвычайно трудным: решение состоит в том, чтобы создать теневой процесс для вашего приложения. Затем приложение и теневой процесс должны отслеживать состояние приостановки друг друга и, если необходимо, возобновлять приостановленный процесс:

  • поскольку процессы должны быть приостановлены один за другим, этот двойной подход гарантирует, что один из двух процессов активен и может предотвратить приостановку.

  • однако этот постоянный мониторинг потребляет процессор, поэтому вы действительно подумаете, нужно ли это делать, и приемлемо ли это для производительности вашего приложения.

Если вы хотите предотвратить приостановку, чтобы избежать обратного инжиниринга вашего кода с помощью отладчика, у вас есть еще один более эффективный вариант. Вы вставляете несколько вызовов таймера в свои критические фрагменты кода и проверяете, показывает ли ненормальное время выполнения приостановку / отладку, и если это так, вы останавливаете свой код.

1

Другие решения

В соответствии с MSDN. Вам необходимо отключить THREAD_SUSPEND_RESUME право доступа при создании темы. Это предотвратит его приостановку

0

По вопросам рекламы [email protected]