我正在使用ESet防病毒軟件,最近它的GUI前端egui.exe掛起並佔用了50%的CPU(即100%的一個內核)。令人驚訝的是,我發現即使啓用了調試權限,我也無法殺死它。終止受保護的防病毒過程
現在我很好奇:他們如何實現這樣的防禦,並且有沒有辦法在編寫內核驅動程序時將其殺死?
egui.exe進程在普通用戶(非管理員)下運行,我嘗試使用管理帳戶以各種方式殺死它。這是我的嘗試。
- 你不能從任務管理器殺它
- 你不能使用pskill
- 使用進程管理器,你不能殺它,也可以附加一個調試器是
然後,我開始殺吧一些編程,發現:
在非特權用戶下,你可以用PROSESS_TERMINA打開它TE訪問,但實際調用TerminateProcess()失敗,出現錯誤5.
在管理員帳戶下,您可以使用您想要的任何訪問權限(當然啓用調試權限後)打開它,但隨後調用TerminateProcess() GetKernelObjectSecurity(),SetKernelObjectSecurity()都失敗,錯誤5
這絕對指向某種擺弄不僅僅是設置過程DACL,因爲如果終止不是在DACL的,你就不能首先用PROCESS_TERMINATE打開進程。他們實際上攔截了Win32 API調用嗎?如果是,那麼如何?自從我做低層次的系統編程已經有一段時間了,所以請原諒我的無知。
爲什麼你想知道這一點? :) –
AV通常具有內核模式組件。如果你只要給自己最高的特權就可以殺死它,這將是糟糕的保護。 –
當它正常運行時,你可以殺死它嗎?還是隻是當它掛起時你不能殺死它? – nos