如何隱藏進程不被檢測?如果有人使用的你的電腦,而你又不想被他人知道你在運行什么程序,僅僅把圖標隱藏是遠遠不夠的,因為在進程中依然可以看到你當前運行的程序,那么要如何隱藏進程呢?進程隱藏有哪些方法呢?請看下文介紹。
【資料圖】
進程隱藏的五種方法:
1、基于系統服務的進程隱藏技術
在 W I N 9X 系列操作系統中, 系統進程列表中不能看到任何系統服務進程, 因此只需要將指定進程注冊為系統服務就能夠使該進程從系統進程列表中隱形。
在win9x下用RegisterServiceProcess函數隱藏進程,NT架構下用不了 即win2000 xp等什么的用不了此方法。
2、基于API HOOK的進程隱藏技術
API HOOK指的是通過特殊的編程手段截獲WINDOWS系統調用的API函數,并將其丟棄或者進行替換。 通過API HOOK編程方法,截獲系統遍歷進程函數并對其進行替換,可以實現對任意進程的隱藏。
3、基于DLL 的進程隱藏技術:遠程注入Dll技術
DLL文件沒有程序邏輯,不能獨立運行,由進程加載并調用,所以在進程列表中不會出現DLL文件。如果是一個以DLL形式存在的程序,通過某個已有進程進行加載, 即可實現程序的進程隱藏。在windows系統中, 每個進程都有自己的私有地址空間, 進程不能創建屬于另一個進程的內存指針。而遠程線程技術正是通過特殊的內核編程手段, 打破進程界限來訪問另一進程的地址空間, 以達到對自身 進行隱藏的目的。
遠程線程注入DLL技術指的是通過在某進程中創建遠程線程的方法進入該進程的內存空間, 然后在其內存空間中加載啟動DLL程序。
4、基于遠程線程注入代碼的進程隱藏技術
這種方法與遠程線程注入 DLL 的原理一樣,都是通過在某進程中創建遠程線程來共享該進程的內存空間。所不同的是,遠程線程注入代碼通過直接拷貝程序代碼到某進程的內存空間來達到注入的目的。因為程序代碼存在于內存中, 不僅進程列表中無法檢測,即使遍歷進程加載的內存模塊也無法找到被隱藏程序的蹤跡。
5、Rootkit方式
Intel CPU 有4 個特權級別: Ring 0, Ring 1, Ring 2, Ring 3。Windows 只使用了其中的 Ring 0 和 Ring 3 兩個級別。
操作系統分為內核和外殼兩部分:內核運行在Ring0級,通常稱為核心態(或內核態),用于實現最底層的管理功能,在內核態可以訪問系統數據和硬件,包括處理機調度、內存管理、設備管理、文件管理等;外殼運行在 Ring 3 級,通常稱為用戶態,是基于內核提供的交互功能而存在的界面,它負責指令傳遞和解釋。通常情況下,用戶態的應用程序沒有權限訪問核心態的地址空間。
Rootkit 是攻擊者用來隱藏自己的蹤跡和保留 root 訪問權限的工具,它能使攻擊者一直保持對目標機器的訪問,以實施對目標計算機的控制。從 Rootkit 運行的環境來看,可將其分為用戶級 Rootkit 和內核級 Rootkit。用戶態下,應用程序會調用 Wi n32 子系統動態庫(包括Kernel32.dll, User32.dll, Gdi32.dll等) 提供的Win32 API函數,它們是 Windows 提供給應用程序與操作系統的接口,運行在Ring 3 級。用戶級 Rootkit 通常就是通過攔截 Win32 API,建立系統鉤子,插入自己的代碼,從而控制檢測工具對進程或服務的遍歷調用,實現隱藏功能。
內核級 R o o t k it 是指利用驅動程序技術或其它相關技術進入Windows 操作系統內核,通過對 Windows 操作系統內核相關的數據結構或對象進行篡改,以實現隱藏功能。
由于Rootkit 運行在 Ring 0 級別,甚至進入內核空間,因而可以對內核指令進行修改,而用戶級檢測卻無法發現內核操作被攔截。
關于進程隱藏的五種方法就給大家介紹到這里了,對于隱私比較多的伙伴,進程隱藏是很有必要的,希望以上方法對大家有所幫助。