簡體   English   中英

C++ 保護進程不被掛起

[英]C++ Protect Process from being suspended

有沒有辦法保護 exe 不被掛起?

請注意,我是應用程序的所有者。

Sysinternals ProcessExpert 等工具可讓您暫停任何進程。 如果用戶具有管理員權限,則無法避免這種情況。

這個 SO 答案顯示了三種暫停 Windows 進程的解決方案。

然而,有一種方法可以使這變得極其困難:解決方案包括為您的應用程序設置一個影子進程。 然后,應用程序和影子進程應監視彼此的暫停狀態,並在必要時恢復暫停的進程:

  • 由於進程必須一個接一個地掛起,這種雙重方法可確保兩個進程之一處於活動狀態並可以防止掛起。

  • 然而,這種持續監控會消耗 CPU,因此您真的會考慮是否有必要這樣做,以及是否可以接受您的應用程序性能。

如果您想防止暫停以避免使用調試器對您的代碼進行逆向工程,您還有另一個更有效的選擇。 您在關鍵代碼段中插入多個計時器調用,並檢查異常執行時間是否顯示掛起/調試,如果是,則停止代碼。

根據msdn 創建線程時需要禁用THREAD_SUSPEND_RESUME訪問權限。 這將防止它被暫停

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM