我想創建一個應用程序,它檢查所有正在運行的進程對白名單和任何不在列表中的進程將終止。
我的想法是第一次嘗試使用tasklikst
命令,得到名單可以說,每一秒,並檢查它針對列表。
後來我想這將是一個更好的主意,更早檢查,創建過程中,尚未執行時,有我們檢查一下針對我們列表,然後如果不在列表中終止它。 那我該怎麼辦呢?
您建議如何處理此問題?
我也對使用C++或C#的語言表示懷疑嗎? 它會在這種情況下有所作爲嗎?我如何知道什麼時候正在創建進程並阻止其在Windows中執行或終止它?
回答
C#中最簡單的方法是定期使用Process.GetProcesses,然後使用Process.Kill殺死任何你想死的東西。但是請注意,當你殺死它的時候,這個過程可能正在進行一些工作 - 它只會幫助你抵禦遊戲(等等),而不是針對惡意軟件。另外,不要忘記,用戶可以將exe文件重命名爲「notepad.exe」。如果這是一個問題,您可以檢查可執行文件的完整路徑,而不僅僅是文件名。
如果你想要一個更智能的方式,不用輪詢,你可以在啓動過程調用中創建一個鉤子 - 參見Monitor process start in the system。通過這種方式,您實際上可以防止進程首先運行。
你可以在C++或C#中實現這個,這個不是真的的問題。選擇一個你最舒服的人。下面是一個算法:
- 設置定時器或計劃任務之類的東西,這將在一段時間
- 枚舉進程
- 對於每一個發現過程檢查名稱對塗白一旦執行代碼上市字典
- 試圖殺死一個進程
在C#中,你可以使用Process class枚舉和殺害。
現在事情就明白了:
- 您的應用程序可能沒有足夠的權限列舉或殺死其他應用
- 您的代碼可能會要求管理員權限
- 事情可能會變得複雜,如果在運行Active Directory中設置了組策略
- 病毒或其他不需要的應用程序能夠「注入」他們的代碼到無人不曉或無辜的應用程序(也就是到您的白名單中的應用程序之一)
- 您將無法殺死大部分的系統任務,所以就不要嘗試全球化是
- 檢查的支持,進程名稱可以得到改變
- 單靠名依託是一個貧窮的做法。如果你想檢查真實性,你應該依靠一些加密簽名,當然,這是一個痛苦的維護,因爲應用程序得到更新。
考慮到最後一段,你試圖實施該解決方案是非常基本的。沒有什麼會阻止用戶幹掉你的應用程序。或者將病毒應用程序重命名爲標準。它看起來很像「通過隱藏的安全」,這有一定的好處,但在防守方面實力真的很弱。
一種技術是創建使用SetWindowsHookEx
,這將被注入到每一個過程全局鉤子DLL。通過這種方式,您將獲得任何新流程的通知,並且您可以根據需要採取措施。
當然,你需要使這個DLL作爲輕量級儘可能考慮到它會被加載到每一道工序,直到永遠。但我仍然認爲這比投票不斷,或IAT補丁更苗條。
可以通過調用SetWindowsHookEx我勾CreateProcess函數?如果是如何,如果沒有我怎樣才能掛鉤的CreateProcess? – Breeze
- 1. 我的正則表達式不知道什麼時候停止
- 2. 如何在Windows和Linux中終止進程時收到通知?
- 3. 如何在後臺進程在Perl中終止時通知我?
- 4. 父進程在C#中終止時如何終止子進程
- 5. 始終在零時間阻止執行
- 6. 進程在其父進程sshd終止時發生了什麼?
- 7. 後臺進程在其父進程終止時被終止?
- 8. 什麼阻止我的命令終止?
- 9. 如何知道什麼時候創建set或frozenset
- 10. 並行執行始終阻止
- 11. Windows如何終止進程?
- 12. 檢查進程是否正在運行並終止它
- 13. 如何阻止iOS在執行關鍵操作時終止應用程序?
- 14. 在VB6中創建子進程,當程序終止時自動終止
- 15. 如何知道tonegenerator什麼時候停止播放
- 16. 如何知道線程執行是否終止?
- 17. 線程阻止窗口正在創建
- 18. 如何阻止子進程終止我的腳本?
- 19. 什麼是程序終止其自己的進程(Windows)中的正確方法
- 20. JS,如果它正在執行中,如何停止進程執行...?
- 21. 爲什麼在playframework renderbinary之後不會最終阻止執行?
- 22. 如何終止正在進行的SCNTransaction?
- 23. 線程在調用TerminateThread時實際終止了什麼時候?
- 24. 如何知道什麼時候通過的Process.Start創建進程()被關閉?
- 25. 如何在c#中通知程序執行和終止?
- 26. 需要在pythonanywhere處終止進程阻止的進程
- 27. 如何在創建新線程時阻止程序執行? (與GDB)
- 28. 我如何知道遠程進程正在運行或完成?
- 29. 如何知道當前正在運行的線程並將其停止iOS
- 30. 什麼時候「open」命令終止?
http://msdn.microsoft.com/en-us/library/windows/desktop/ms684865(v=vs.85).aspx – Abhineet
您需要此IIRC的WMI –
已有組策略。使用它們。沒有必要重新發明輪子。 –