进程隐藏的各种方法 以及分析比较以及实现链接
典型進(jìn)程隱藏技術(shù)
1? 基于系統(tǒng)服務(wù)的進(jìn)程隱藏技術(shù)
在 W I N 9X 系列操作系統(tǒng)中, 系統(tǒng)進(jìn)程列表中不能看到任何系統(tǒng)服務(wù)進(jìn)程, 因此只需要將指定進(jìn)程注冊(cè)為系統(tǒng)服務(wù)就能夠使該進(jìn)程從系統(tǒng)進(jìn)程列表中隱形
在win9x下用RegisterServiceProcess函數(shù)隱藏進(jìn)程,NT架構(gòu)下用不了 即win2000? xp等什么的用不了此方法。
2? 基于API HOOK的進(jìn)程隱藏技術(shù)
API HOOK指的是通過特殊的編程手段截獲WINDOWS系統(tǒng)調(diào)用的API函數(shù),并將其丟棄或者進(jìn)行替換。 通過API
HOOK編程方法,截獲系統(tǒng)遍歷進(jìn)程函數(shù)并對(duì)其進(jìn)行替換,可以實(shí)現(xiàn)對(duì)任意進(jìn)程的隱藏
?
3? 基于 DLL 的進(jìn)程隱藏技術(shù):遠(yuǎn)程注入Dll技術(shù)
DLL文件沒有程序邏輯,不能獨(dú)立運(yùn)行,由進(jìn)程加載并調(diào)用,所以在進(jìn)程列表中不會(huì)出現(xiàn)DLL文件。如果是一個(gè)以DLL形式存在的程序,通過某個(gè)
已有進(jìn)程進(jìn)行加載, 即可實(shí)現(xiàn)程序的進(jìn)程隱藏。在windows系統(tǒng)中, 每個(gè)進(jìn)程都有自己的私有地址空間, 進(jìn)程不能創(chuàng)建屬于另一個(gè)進(jìn)程的內(nèi)存指針
。而遠(yuǎn)程線程技術(shù)正是通過特殊的內(nèi)核編程手段, 打破進(jìn)程界限來訪問另一進(jìn)程的地址空間, 以達(dá)到對(duì)自身 進(jìn)行隱藏的目的。
遠(yuǎn)程線程注入DLL技術(shù)指的是通過在某進(jìn)程中創(chuàng)建遠(yuǎn)程線程的方法進(jìn)入該進(jìn)程的內(nèi)存空間, 然后在其內(nèi)存空間中加載啟動(dòng)DLL程序。
?
4? 基于遠(yuǎn)程線程注入代碼的進(jìn)程隱藏技術(shù)
這種方法與遠(yuǎn)程線程注入 DLL 的原理一樣,都是通過在某進(jìn)程中創(chuàng)建遠(yuǎn)程線程來共享該進(jìn)程的內(nèi)存空間。所不同的是,遠(yuǎn)程線程注入代碼通過直接
拷貝程序代碼到某進(jìn)程的內(nèi)存空間來達(dá)到注入的目的。因?yàn)槌绦虼a存在于內(nèi)存中, 不僅進(jìn)程列表中無法檢測(cè), 即使遍歷進(jìn)程加載的內(nèi)存模塊也無法
找到被隱藏程序的蹤跡。
?
5? Rootkit方式
Intel CPU 有4 個(gè)特權(quán)級(jí)別: Ring 0, Ring 1, Ring 2, Ring 3。Windows 只使用了其中的 Ring? 0 和? Ring? 3 兩個(gè)級(jí)別。
操作系統(tǒng)分為內(nèi)核和外殼兩部分:內(nèi)核運(yùn)行在Ring0級(jí),通常稱為核心態(tài)(或內(nèi)核態(tài)),用于實(shí)現(xiàn)最底層的管理功能,在內(nèi)核態(tài)
可以訪問系統(tǒng)數(shù)據(jù)和硬件,包括處理機(jī)調(diào)度、內(nèi)存管理、設(shè)備管理、文件管理等;外殼運(yùn)行在 Ring 3 級(jí),通常稱為用戶態(tài),
是基于內(nèi)核提供的交互功能而存在的界面,它負(fù)責(zé)指令傳遞和解釋。通常情況下,用戶態(tài)的應(yīng)用程序沒有權(quán)限訪問核心態(tài)的地址空間。
Rootkit 是攻擊者用來隱藏自己的蹤跡和保留 root 訪問權(quán)限的工具,它能使攻擊者一直保持對(duì)目標(biāo)機(jī)器的訪問,以實(shí)施對(duì)目標(biāo)計(jì)算機(jī)的控制[1]。從 Rootkit 運(yùn)行的環(huán)境來看,可將
其分為用戶級(jí) Rootkit 和內(nèi)核級(jí) Rootkit。
用戶態(tài)下,應(yīng)用程序會(huì)調(diào)用 Wi n32 子系統(tǒng)動(dòng)態(tài)庫(包括Kernel32.dll, User32.dll, Gdi32.dll等) 提供的Win32 API函數(shù),
它們是? Windows? 提供給應(yīng)用程序與操作系統(tǒng)的接口,運(yùn)行在Ring? 3 級(jí)。用戶級(jí) Rootkit 通常就是通過攔截 Win32? API,建立系統(tǒng)鉤子,插入自己的代碼,從而控制檢測(cè)工具對(duì)進(jìn)程或服務(wù)的遍歷調(diào)用,實(shí)現(xiàn)隱藏功能。
內(nèi)核級(jí) R o o t k it 是指利用驅(qū)動(dòng)程序技術(shù)或其它相關(guān)技術(shù)進(jìn)入Windows 操作系統(tǒng)內(nèi)核,通過對(duì) Windows 操作系統(tǒng)內(nèi)核相關(guān)的數(shù)據(jù)結(jié)構(gòu)或?qū)ο筮M(jìn)行篡改,以實(shí)現(xiàn)隱藏功能。
由于Rootkit 運(yùn)行在 Ring? 0 級(jí)別,甚至進(jìn)入內(nèi)核空間,因而可以對(duì)內(nèi)核指令進(jìn)行修改,而用戶級(jí)檢測(cè)卻無法發(fā)現(xiàn)內(nèi)核操作被攔
截。
下面介紹兩種使用 Rootkit 技術(shù)來實(shí)現(xiàn)進(jìn)程隱藏的方法。冊(cè)表來實(shí)現(xiàn)啟動(dòng),因而易于被檢測(cè)出來。顯然,要增強(qiáng)進(jìn)程的隱蔽性,關(guān)鍵在于增強(qiáng)加載程序文件的隱藏性。
<1>?? SSDT Hook
參考本文最下面的鏈接
<2> DKOM (Direct Kernel Object Manipulation,直接內(nèi)核對(duì)象操作)
使用DKOM方法進(jìn)行進(jìn)程隱藏。在Windows操作系統(tǒng)中,系統(tǒng)會(huì)為每一個(gè)活動(dòng)進(jìn)程創(chuàng)建一個(gè)進(jìn)程對(duì)象EPROCESS,為進(jìn)程中的每一個(gè)線程創(chuàng)建一個(gè)線程對(duì)象 ETHREAD。
在 EPROCESS 進(jìn)程結(jié)構(gòu)中有個(gè)雙向鏈表 LIST_ENTRY,LIST_ENTRY結(jié)構(gòu)中有FLINK 和BLINK 兩個(gè)成員指針,分別指向當(dāng)前進(jìn)程的前驅(qū)進(jìn)程和后繼進(jìn)程。
如果要隱藏當(dāng)前進(jìn)程,只需把當(dāng)前進(jìn)程的前驅(qū)進(jìn)程的BLINK 修改為當(dāng)前進(jìn)程的BLINK,再把當(dāng)前進(jìn)程的后繼進(jìn)程的FLINK修改為當(dāng)前進(jìn)程的FLINK。
好文章 :進(jìn)程隱藏與進(jìn)程保護(hù)(SSDT Hook 實(shí)現(xiàn))?
http://www.baidu.com/link?url=ydyu3Qv5alN_GUSE7LSYWJjc-X_amMh75qSN024ldqUGbcQ8YLT1nUlOV07ePFTl
http://www.cnblogs.com/BoyXiao/archive/2011/09/04/2166596.html
http://www.baidu.com/link?url=D3YtcDlkmUvyvVCYbH4hWzmCkHLZt8HQ4L2L9TzapcV99dUgnlOMS2akwXYqq2VllPnvI5Q6XCxZ9HFie-TLUZ0qDogyZJGH5zHd7ROUCru
遠(yuǎn)程注入 ?http://hi.baidu.com/fpsixkukaiadmwr/item/19c1b1794a418647ee1e5339
http://www.cnblogs.com/BoyXiao/archive/2011/08/11/2134367.html
貌似 ssdt hook ?在win7下不能用來隱藏進(jìn)程了 ?貌似是因?yàn)檎也坏狡?#xff0c;因?yàn)閣in7采用了隨機(jī)偏移 ? ?
一個(gè)好的支持win7的隱藏方法
http://bbs.pediy.com/showthread.php?p=1085174
總結(jié)
以上是生活随笔為你收集整理的进程隐藏的各种方法 以及分析比较以及实现链接的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解方程(equation)
- 下一篇: 30个免费的CSS3动画片段代码