Есть ли какой-нибудь возможный способ защитить exe от приостановки?
Обратите внимание, что я владелец приложения.
Есть такие инструменты, как Sysinternals ProcessExpert, который позволяет приостановить любой процесс. Если у пользователя есть права администратора, избежать этого невозможно.
Это так ответ показывает три решения, чтобы приостановить процесс Windows.
Однако есть способ сделать это чрезвычайно трудным: решение состоит в том, чтобы создать теневой процесс для вашего приложения. Затем приложение и теневой процесс должны отслеживать состояние приостановки друг друга и, если необходимо, возобновлять приостановленный процесс:
поскольку процессы должны быть приостановлены один за другим, этот двойной подход гарантирует, что один из двух процессов активен и может предотвратить приостановку.
однако этот постоянный мониторинг потребляет процессор, поэтому вы действительно подумаете, нужно ли это делать, и приемлемо ли это для производительности вашего приложения.
Если вы хотите предотвратить приостановку, чтобы избежать обратного инжиниринга вашего кода с помощью отладчика, у вас есть еще один более эффективный вариант. Вы вставляете несколько вызовов таймера в свои критические фрагменты кода и проверяете, показывает ли ненормальное время выполнения приостановку / отладку, и если это так, вы останавливаете свой код.
В соответствии с MSDN. Вам необходимо отключить THREAD_SUSPEND_RESUME
право доступа при создании темы. Это предотвратит его приостановку