c語(yǔ)言木馬源代碼教程掃盲進(jìn)階深度剖析_第1頁(yè)
c語(yǔ)言木馬源代碼教程掃盲進(jìn)階深度剖析_第2頁(yè)
c語(yǔ)言木馬源代碼教程掃盲進(jìn)階深度剖析_第3頁(yè)
c語(yǔ)言木馬源代碼教程掃盲進(jìn)階深度剖析_第4頁(yè)
c語(yǔ)言木馬源代碼教程掃盲進(jìn)階深度剖析_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 TOC o 1-5 h z ( 1) (3) (7)(12)(18)(24)(30)(35)(41)十.(46)十一 (52)十二(61)一、前言 在進(jìn)入正文之前呢,容我先說(shuō)幾句廢話(huà)。 在寫(xiě)此文之前,我曾寫(xiě)過(guò)一篇“高級(jí)木馬的自我保護(hù)技術(shù)與查殺之策”,承蒙各位朋友的厚愛(ài),被各網(wǎng)站所轉(zhuǎn)載, 亦曾有許多朋友來(lái)信求助。由于該文是心血來(lái)潮后的隨筆所寫(xiě),所以并沒(méi)有經(jīng)過(guò)深思熟慮,也并沒(méi)有脈絡(luò)可循,至使有的朋友能看懂,有的卻 看不懂。而看得懂的呢,亦有很大一部分并不能真正的應(yīng)用文中所提的查殺技巧。故一直有心再寫(xiě)一篇文章,幫助深受木馬毒害的朋友們了解木馬是什么,又如何查殺。 本文適于下列人員閱讀 : 能熟練使

2、用計(jì)算機(jī)的人想自己動(dòng)手解決問(wèn)題的人錢(qián)沒(méi)有多到電腦一出問(wèn)題就扔到電腦修理公司的人適于下列人員參考 :電腦維修人員微機(jī)管理人員安全相關(guān)的程序開(kāi)發(fā)人員本文所要達(dá)到的目的是 :讓菜鳥(niǎo)也可以了解系統(tǒng)安全自己來(lái)動(dòng)手查毒殺馬,由求助者變?yōu)閹椭苏摺?在殺毒軟件無(wú)能為力的情況下,借助本文的知識(shí)讓你仍然能借助工具完成清理查殺的任務(wù)。 讓您真正的明白一些看似神秘的、高深莫測(cè)的專(zhuān)用術(shù)語(yǔ)與技術(shù)的內(nèi)幕。讓您了解 Windows 系統(tǒng)的底層知識(shí)。本文以手動(dòng)查殺為主, 輔以必要的工具, 文中用到的工具與測(cè)試用的仿木馬小程序都提供了下載地址,供朋友們下 載試用。本文作者為MuseHero,您可在網(wǎng)絡(luò)上任意轉(zhuǎn)載,但請(qǐng)注明出處

3、、作者并保持文章的完整性,謝謝。二、木馬知識(shí)掃盲篇 什么是木馬呢?木馬只是一類(lèi)程序的名字,為實(shí)現(xiàn)特殊目的而制作并偷偷植入目的計(jì)算機(jī)中的程序的統(tǒng)稱(chēng)。其名字源于古希臘神話(huà)木馬屠城記,全名為“特洛伊木馬”有興趣的可以翻看相關(guān)資料,很不錯(cuò)的一篇故事。 那什么又是程序呢?呵,即然是掃盲篇,我們就不能回避這些讓人頭都大的問(wèn)題,先從最基本的開(kāi)始,熟悉計(jì)算機(jī) 的朋友們可以直接跳到第三章去。我們先了解一些基本的概念:概念一 :計(jì)算機(jī)。就是我們的電腦了,指的就是一堆硬件,顯示器、主機(jī)、鍵盤(pán)、鼠標(biāo)等等,當(dāng)然了,拆開(kāi)主機(jī)還 有一堆零碎。我們只需要了解其中幾個(gè)后面會(huì)提到的就行了。CPU計(jì)算機(jī)的指令處理單元。所有的工作都

4、是由它來(lái)做的,同一個(gè)CPC同一時(shí)間只能處理一條指令,就是說(shuō)一旦CPU被某一程序占用,那在同一時(shí)刻內(nèi)其它程序就肯定是空閑等待狀態(tài)(雙核的可以同時(shí)執(zhí)行兩條,以此類(lèi)推)。內(nèi)存:內(nèi)部存儲(chǔ)器。CPU執(zhí)行的指令都是由內(nèi)存中讀取的,所以,一個(gè)程序要運(yùn)行首先要裝入到內(nèi)存中。 磁盤(pán):外部存儲(chǔ)器。存放文件數(shù)據(jù)的地方。計(jì)算機(jī)中所有的數(shù)據(jù)平時(shí)都是存在這里的,只有在需要執(zhí)行或查看時(shí), 才讀取到內(nèi)存中。但只有硬件,是不能使用的,還需要軟件的配合,我們買(mǎi)電腦時(shí)電腦中大都安裝了某一操作系統(tǒng),主流的就是MSWindows系統(tǒng)了(還有其它的操作系統(tǒng)如 Linux等,這里不做討論)。這就是我們需要了解的也是以后要頻繁出現(xiàn)的 第二個(gè)

5、概念了“系統(tǒng)”。概念二 :系統(tǒng)。系統(tǒng)其實(shí)在大多數(shù)情況下都指的是操作系統(tǒng),也就是幫我們使用與管理硬件的軟件系統(tǒng),當(dāng)我們按 下機(jī)箱電源后,即由主板上的 BIOS檢測(cè)硬件、再交由硬盤(pán)中的引導(dǎo)程序啟動(dòng)操作系統(tǒng),然后就出現(xiàn)了我們所熟悉的 Windows主窗口(計(jì)算機(jī)在啟動(dòng)時(shí)做了些什么,我們會(huì)在后面詳細(xì)的講解),而以后我們的所有工作,看電影、聽(tīng)歌曲、 玩游戲、上網(wǎng)瀏覽等等都是在這個(gè)窗口中進(jìn)行。操作系統(tǒng)維持這個(gè)窗口的顯示及一些常用功能的完成,而這些功能是 由一系列的程序來(lái)實(shí)現(xiàn)的,這又引出了我們的第三個(gè)概念“程序”概念三 :程序。程序是什么呢?程序就是一組指令執(zhí)行序列。呵,有點(diǎn)專(zhuān)業(yè)了是不?什么又叫指令執(zhí)行序列

6、呢? 舉例來(lái)說(shuō):我管理著一個(gè)工廠,正常情況下我讓工人們按這樣來(lái)工作“先去原料倉(cāng)庫(kù)取原料- 進(jìn)行初步加工 -進(jìn)行精細(xì)加工 - 進(jìn)行零配件組裝 - 驗(yàn)收 - 合格則送入成品庫(kù) - 不合格則銷(xiāo)毀”。這就是一個(gè)指令執(zhí)行序列,當(dāng)情況 為正常時(shí),工人們執(zhí)行的是這個(gè)序列也就是這個(gè)“程序”。而在旺銷(xiāo)的季節(jié)呢,我還有第二個(gè)程序“取原料 進(jìn)行初步加工-組裝-進(jìn)成品庫(kù)”。當(dāng)情況為供不應(yīng)求時(shí),我就執(zhí)行第二個(gè)程序。還有第三個(gè)、第四個(gè)等等,在 不同的情況下,我讓工人們執(zhí)行不同的程序。計(jì)算機(jī)程序也是一樣的,跟據(jù)用戶(hù)要求的不同,執(zhí)行不同的指令序列,比如您要畫(huà)圖,你可能會(huì)這么操作“點(diǎn)擊開(kāi) 始菜單 - 選擇所有程序 - 在所有的

7、程序中選擇附件 - 再在附件中選擇畫(huà)圖”,這就是你向操作系統(tǒng)下達(dá)的指令。操作 系統(tǒng)得到您的指令后,則會(huì)執(zhí)行畫(huà)圖程序,也就是實(shí)現(xiàn)畫(huà)圖目的的一系列指令,而這些畫(huà)圖的指令儲(chǔ)存在“”文件中。 操作系統(tǒng)會(huì)將中的指令裝入到內(nèi)存中交由CPU開(kāi)始一條條的執(zhí)行??偨Y(jié)一下:程序是什么呢?說(shuō)白了就是一個(gè)計(jì)劃書(shū),里面記載了先做什么后做什么。好的程序是好的計(jì)劃,壞的程 序就是壞的計(jì)劃,比如:“收集炸藥 - 買(mǎi)雷管- 制成炸彈 -放到張三的床下面 -引爆” ,這就是一個(gè)壞計(jì)劃,相對(duì)于計(jì) 算機(jī)來(lái)說(shuō)就是一個(gè)壞程序。壞程序有破壞作用嗎?也就是說(shuō)你寫(xiě)了個(gè)爆了張三的計(jì)劃書(shū)就可以炸了張三嗎?當(dāng)然不可 以,只有計(jì)劃是不行的,還要去執(zhí)行

8、才能真正起到作用。所以,一個(gè)木馬程序僅僅是存在于您的計(jì)算機(jī)中時(shí)并不可怕, 可怕的是它執(zhí)行起來(lái)。程序執(zhí)行起來(lái)是什么呢?那就是我們要說(shuō)的第四個(gè)概念“進(jìn)程”- 執(zhí)行中的程序。概念四 :進(jìn)程。程序一旦進(jìn)入內(nèi)存中開(kāi)始執(zhí)行,就叫做進(jìn)程(進(jìn)程其實(shí)就是容納指令與資源的容器)。也就是說(shuō), 他已經(jīng)開(kāi)始工作了,開(kāi)始買(mǎi)炸藥、制炸彈了,等執(zhí)行到引爆那一條指令時(shí),張三也就完蛋了。所以,檢查可疑進(jìn)程, 就是查殺木馬的關(guān)鍵環(huán)節(jié),也是重要的手段與方法。找到木馬的進(jìn)程,并結(jié)束它,在它執(zhí)行到引爆這條指令之前,就 停止它的執(zhí)行,并將它的程序自計(jì)算機(jī)中刪除掉,就是我們所要達(dá)到的目的。說(shuō)到這里,細(xì)心的讀者們可能想到了一個(gè)問(wèn)題,畫(huà)圖程序的

9、執(zhí)行,是因?yàn)槲覀兿虿僮飨到y(tǒng)下達(dá)了畫(huà)圖的指令,所以 操作系統(tǒng)才調(diào)入畫(huà)圖程序開(kāi)始執(zhí)行畫(huà)圖的指令序列。但是木馬程序又是誰(shuí)給操作系統(tǒng)下達(dá)的指令讓木馬的工作計(jì)劃得 到執(zhí)行的呢?這就是我們下面要說(shuō)的第五個(gè)概念“自啟動(dòng)程序”概念五 :自啟動(dòng)程序。顧名思義,自啟動(dòng)程序,也就是不用您自己動(dòng)手它自己就可以啟動(dòng)起來(lái)開(kāi)始執(zhí)行的程序。這 是些什么程序呢?為什么要允許程序這樣做呢?難道是專(zhuān)為木馬準(zhǔn)備的?呵,當(dāng)然不是。自啟動(dòng)程序有二大類(lèi),一是 系統(tǒng)需要的;二是用戶(hù)需要的。系統(tǒng)需要的,是因?yàn)橛行┕ぷ魇菬o(wú)須經(jīng)過(guò)用戶(hù)同意,必須去做的。比如,鼠標(biāo)驅(qū)動(dòng)。為了能讓用戶(hù)使用鼠標(biāo),系統(tǒng) 要自動(dòng)加載鼠標(biāo)驅(qū)動(dòng)程序并執(zhí)行。用戶(hù)需要的,一些重復(fù)性

10、工作可能用戶(hù)想讓系統(tǒng)自動(dòng)去做,而不是每天每時(shí)的重復(fù)這份工作。比如:用戶(hù)可以設(shè)定 多長(zhǎng)時(shí)間無(wú)操作,就自動(dòng)運(yùn)行屏幕保護(hù)程序以便保護(hù)屏幕不被燒壞。這顯然必須要屏幕保護(hù)程序能自動(dòng)的運(yùn)行,用戶(hù) 是不可能每次手動(dòng)去執(zhí)行這個(gè)程序的。而木馬就是利用了這些本來(lái)是為系統(tǒng)或用戶(hù)提供方便的手段, 來(lái)實(shí)現(xiàn)自動(dòng)運(yùn)行它們自己的目的。 如:木馬用自己來(lái) 取代屏幕保護(hù)程序,這樣,長(zhǎng)時(shí)間無(wú)操作時(shí),運(yùn)行的就不再是屏幕保護(hù)程序而是木馬了。在系統(tǒng)中有很多地方或方法是可以讓程序自動(dòng)運(yùn)行起來(lái)的,這個(gè)我們?cè)诤竺鎸⒁灰恢v述。 而清掉自啟動(dòng)項(xiàng), 讓木馬 程序得不到執(zhí)行,顯然也就成為了我們查殺木馬的重要手段之一。而系統(tǒng)又是如何知道, 哪一個(gè)程序應(yīng)

11、該在開(kāi)機(jī)后就自動(dòng)運(yùn)行, 無(wú)須等用戶(hù)來(lái)操作呢?朋友們應(yīng)該能猜到, 系統(tǒng)肯定 是把這些需要自動(dòng)運(yùn)行的程序都記錄到了某一個(gè)地方,記錄到哪里了呢?這就是我們要講的第六個(gè)概念“注冊(cè)表”概念六 :注冊(cè)表。 注冊(cè)表是什么呢?是系統(tǒng)記錄信息用的一個(gè)數(shù)據(jù)庫(kù), 舉例來(lái)說(shuō)它就像公司檔案柜一樣, 發(fā)工資時(shí), 財(cái)務(wù)人員要查閱檔案,以確定哪個(gè)員工應(yīng)該發(fā)多少錢(qián)。就像系統(tǒng)啟動(dòng)時(shí)查閱注冊(cè)表,確定哪個(gè)程序應(yīng)該自動(dòng)啟動(dòng)起來(lái) 一樣。這是一個(gè)非常寵大的數(shù)據(jù)中心,系統(tǒng)的關(guān)鍵信息都記錄到那里,與現(xiàn)實(shí)中我們的檔案柜一樣,都很重要,一旦損壞 將造成無(wú)可挽回的后果,所以微軟公司不建議直接對(duì)注冊(cè)表進(jìn)行操作。當(dāng)然了,木馬的作者通常是不會(huì)理會(huì)微軟的建

12、 議的。所以,木馬通常都會(huì)將自己寫(xiě)入到注冊(cè)表的某個(gè)自啟動(dòng)項(xiàng)中,以便開(kāi)機(jī)時(shí)自動(dòng)運(yùn)行,而無(wú)須經(jīng)過(guò)用戶(hù)的同意。講到這里,又有一個(gè)不容回避的問(wèn)題出現(xiàn)了,上面我們說(shuō)了,木馬程序其實(shí)就是一個(gè)計(jì)劃書(shū),而為了執(zhí)行這份計(jì)劃 書(shū),木馬需要把自己寫(xiě)到注冊(cè)表中的自啟動(dòng)程序序列中去。而問(wèn)題就是,這份計(jì)劃書(shū)是如何來(lái)的呢?如果得不到執(zhí)行, 它又如何將自己寫(xiě)到注冊(cè)表的自啟動(dòng)程序中去呢?不放到自啟動(dòng)程序中它就得不到執(zhí)行,而得不到執(zhí)行,它也就無(wú)法 起到作用也包括無(wú)法將自己寫(xiě)到注冊(cè)表中去暈了,這成了先有雞還是先有蛋的問(wèn)題了。那么木馬是如何進(jìn)入我們 的計(jì)算機(jī)并獲得首次執(zhí)行的呢?這就是我們要講的第七個(gè)概念了“侵入”概念七 :侵入。侵入

13、是什么呢?也就是侵略進(jìn)入嘍,侵略需要被侵略者同意嗎?當(dāng)然不需要。將木馬程序放入您的 計(jì)算機(jī),并讓它得到首次執(zhí)行的過(guò)程就是侵入。侵入的方法有很多種, 我們將在后面主動(dòng)防御一章中詳細(xì)講解。 因?yàn)椋?相信現(xiàn)在朋友們最關(guān)心的并不是如何不讓他 進(jìn)來(lái),而是我的電腦中現(xiàn)在是不是正在執(zhí)行著木馬程序呢?已經(jīng)執(zhí)行到了哪一步呢?是否馬上就要引爆了呢?我 關(guān)機(jī)后下次還能打開(kāi)不?好,接下來(lái),就讓我們進(jìn)入下一章,一起來(lái)看看,電腦中正在執(zhí)行的木馬程序“木馬進(jìn)程”。三、木馬的查殺之進(jìn)程篇1、進(jìn)程的查看 進(jìn)程,我們上面說(shuō)過(guò)了,狹義上講就是正在執(zhí)行中的程序。那如何來(lái)查看系統(tǒng)中都有哪些程序正在執(zhí)行呢?(先 看下圖 03-1 :)系

14、統(tǒng)自帶了一個(gè)“任務(wù)管理器”可以使我們看到系統(tǒng)中當(dāng)前的進(jìn)程,在桌面下方的任務(wù)欄按右鍵,選擇“任務(wù)管理 器”或同時(shí)按下“ Ctrl Alt Del”三個(gè)鍵、或同時(shí)按下“ CtrlShift ESC三個(gè)鍵,都可以打開(kāi)任務(wù)管理器程序, 看到上面的窗口。看到上面的圖時(shí),會(huì)不會(huì)有點(diǎn)發(fā)昏? 20 個(gè)進(jìn)程,哪個(gè)是好的哪個(gè)是壞的呢?上面的信息又都是些什么意思呢? 不要著急,讓我來(lái)教教你怎么來(lái)看這些信息。首先,顯示哪些信息,是可以自由選擇的,看到最上面的菜單沒(méi)?就是“文件、選項(xiàng)、查看、關(guān)機(jī)、幫助”。依 次選擇“查看” - “選擇列”并勾選里面的相應(yīng)項(xiàng)就可以顯示相應(yīng)的信息。我們關(guān)心的是前五個(gè),即:映像名稱(chēng)、PID、

15、CPU CPU時(shí)間、內(nèi)存使用,下面依次進(jìn)行介紹。l映像名稱(chēng):即進(jìn)程所對(duì)應(yīng)的同名程序名字。其中有兩個(gè)是例外,“System”代表的是系統(tǒng),并沒(méi)有對(duì)應(yīng)的同名程序;“ System Idle Process ”代表的是空閑進(jìn)程,同樣沒(méi)有對(duì)應(yīng)的同名程序,它占據(jù)了CPU的空閑時(shí)間。我們可以依據(jù)此欄,來(lái)找到進(jìn)程對(duì)應(yīng)的程序文件。lPID :英文件縮寫(xiě),即進(jìn)程的 ID ,是一個(gè)唯一的數(shù)字,唯一的代表一個(gè)進(jìn)程。 我們可以依據(jù)此欄來(lái)區(qū)分進(jìn)程,尤其是同名的進(jìn)程,比如:進(jìn)程。ICPU:即該進(jìn)程當(dāng)前消耗 CPU的百分比,如果某個(gè)進(jìn)程正在工作,那么CPU一列的數(shù)值就會(huì)是非零,工作量越大,其數(shù)值越高。例外的是“ Syste

16、m Idle Process ”進(jìn)程,它的數(shù)值越高,說(shuō)明當(dāng)前的系統(tǒng)越是空閑,所有進(jìn)程的 CPU 一欄的數(shù)值相加等于10 0% CPU占用。我們可以依據(jù)此欄來(lái)查看,哪些進(jìn)程正在工作,哪些進(jìn)程是空閑的。上面我們說(shuō)過(guò),同一CPU在同一時(shí)間只能處理一個(gè)工作,所以如果某一進(jìn)程長(zhǎng)時(shí)間大量占用CPU那么將會(huì)導(dǎo)致其它進(jìn)程得不到或得到很少的CPU時(shí)間來(lái)處理,使系統(tǒng)反應(yīng)速度嚴(yán)重遲緩。這種情況的出現(xiàn),通常是程序出現(xiàn)了問(wèn)題,我們就要考慮結(jié)束掉霸占CPU不放的進(jìn)程,并盡量查明原因。ICPU時(shí)間:自運(yùn)行以來(lái),該進(jìn)程占用的全部CPU時(shí)間,此數(shù)值越大,代表該進(jìn)程工作時(shí)間越長(zhǎng),注意,不是運(yùn)行時(shí)間而是工作時(shí)間,如果運(yùn)行后,進(jìn)程只

17、是等待,并沒(méi)有工作,那么此時(shí)間也會(huì)很小。例外的仍然是“System IdIeProcess ”進(jìn)程,它占據(jù)了 CPU全部的空閑時(shí)間。我們可以據(jù)此來(lái)判斷, 哪些進(jìn)程在一直的工作, 而這一直工作的進(jìn)程是不是應(yīng)該工作的正常進(jìn)程。 比如我們一直在 畫(huà)圖,那畫(huà)圖程序的進(jìn)程 CPU時(shí)間很長(zhǎng),那就是很正常的;而如果我們?cè)诼?tīng)音樂(lè),從來(lái)沒(méi)畫(huà)過(guò)圖,但這里卻顯示畫(huà)圖 程序用了大量的CPU時(shí)間,那很可能就是某個(gè)黑客或木馬或其它進(jìn)程正在偷偷的使用畫(huà)圖程序呢。I 內(nèi)存使用: 標(biāo)明了該進(jìn)程使用的內(nèi)存數(shù)量, 要知道, 系統(tǒng)中的內(nèi)存數(shù)量是有限的, 當(dāng)某一個(gè)進(jìn)程大量占用內(nèi)存時(shí), 就會(huì)導(dǎo)至系統(tǒng)或其它進(jìn)程可用內(nèi)存量減少,而至使系統(tǒng)運(yùn)

18、行速度減慢。在某些情況下, 可以依此來(lái)找出系統(tǒng)變慢的原因, 并盡量使用占用內(nèi)存小的程序來(lái)提高系統(tǒng)的性能。 雖然現(xiàn)在機(jī)器 的配置都高了,內(nèi)存也都大了,但在同等條件下,優(yōu)先考慮使用占用資源少的程序也是有必要的。要在這些進(jìn)程中區(qū)分哪些是系統(tǒng)進(jìn)程,哪些不是,用任務(wù)管理器顯然很難做到,最好的辦法是借助專(zhuān)業(yè)工具。(看下圖: 03-2 )上圖是用反黑工具狙劍查看進(jìn)程時(shí)的樣子,狙劍程序的下載地址:下載后解壓縮,運(yùn)行里面的 啟動(dòng)狙劍,并選擇“進(jìn)程管理” 就可以打開(kāi)進(jìn)程管理頁(yè)面,與任務(wù)管理器相比,首先映像文件帶了路徑,使您可以直接定位到程序文件。其次,多了父ID 欄,這個(gè)標(biāo)明了該進(jìn)程是由誰(shuí)啟動(dòng)的,比如:的進(jìn)程 I

19、D是540,父ID是4 那么,我們就可 以知道,是由進(jìn)程ID為4的system進(jìn)程啟動(dòng)的,而又啟動(dòng)了與,接著由啟動(dòng)了與。注意,有的進(jìn)程并沒(méi)有看到父進(jìn)程,比如: 它的父 ID 是: 1216 但進(jìn)程中并沒(méi)有進(jìn)程 ID 為 1216 的進(jìn)程,這是因?yàn)橄到y(tǒng)在初始化時(shí)還有一個(gè)程 序會(huì)自動(dòng)運(yùn)行,那就是這個(gè)程序負(fù)責(zé)用戶(hù)初始化工作,并負(fù)責(zé)啟動(dòng),而工作完成后,它就退出運(yùn)行了,所以進(jìn)程中并 沒(méi)有它。最近有個(gè)木馬是通過(guò)感染來(lái)啟動(dòng)的,由于啟動(dòng)后就退出了,所以通過(guò)查看進(jìn)程很難發(fā)現(xiàn)問(wèn)題,這問(wèn)題我們將 在“自啟動(dòng)項(xiàng)”一篇中詳細(xì)講解。以上就是系統(tǒng)啟動(dòng)的順序,從 System 開(kāi)始,依次啟動(dòng)了幾個(gè)進(jìn)程,正常情況下,上面這幾個(gè)

20、進(jìn)程都是系統(tǒng)關(guān)鍵進(jìn) 程,結(jié)束它們的運(yùn)行將導(dǎo)至系統(tǒng)出現(xiàn)問(wèn)題。有很多朋友對(duì)開(kāi)機(jī)以后系統(tǒng)都做了些什么比較感興趣, 而這對(duì)系統(tǒng)不能啟動(dòng)時(shí)的故障查明也有幫助, 可以通過(guò)判斷 系統(tǒng)停在了哪個(gè)環(huán)節(jié)來(lái)斷定是哪個(gè)部分出了問(wèn)題,在這里,我就對(duì)系統(tǒng)的啟動(dòng)過(guò)程進(jìn)行一下簡(jiǎn)單的說(shuō)明:系統(tǒng)的啟動(dòng)過(guò)程:1、 當(dāng)你按下開(kāi)機(jī)鍵時(shí),最早是由主板 BIOS蕊片中的BIOS程序來(lái)執(zhí)行硬件檢測(cè)任務(wù)的,如果檢查過(guò)程中發(fā)現(xiàn)關(guān)鍵 硬件的故障,就會(huì)發(fā)出特定的響聲通知用戶(hù),并停止啟動(dòng)。而B(niǎo)IOS程序是哪里來(lái)的呢?這是在主板出廠時(shí)固化在芯片 中的一段程序。2、 當(dāng)硬件沒(méi)有問(wèn)題時(shí),BIOS程序就會(huì)讀入硬盤(pán)的主引導(dǎo)記錄,將下面的任務(wù)交給主引導(dǎo)記錄代碼去

21、完成。而主引 導(dǎo)記錄又是哪里來(lái)的呢?這是在安裝操作系統(tǒng)時(shí)對(duì)磁盤(pán)進(jìn)行分區(qū)格式化操作時(shí),寫(xiě)到硬盤(pán)中的。如果找不到主引導(dǎo)記 錄,會(huì)出錯(cuò)停止,告訴你這是非法的系統(tǒng)啟動(dòng)盤(pán)。3、 主引導(dǎo)記錄代碼的工作是讀入磁盤(pán)主分區(qū)的根目錄,在里面讀出NtIdr 文件,并裝入內(nèi)存,然后將控制權(quán)交給 它。注意看一下,你的硬盤(pán)根目錄下是不是有個(gè) NtIdr 文件?這個(gè)文件的屬性是隱藏、系統(tǒng),所以查看時(shí)要選擇查看 所有,且不隱藏被保護(hù)的系統(tǒng)文件才可看到。這個(gè)文件是哪里來(lái)的?呵,當(dāng)然是安裝操作系統(tǒng)時(shí)拷貝到硬盤(pán)上的,下 面提到的文件都是在安裝操作系統(tǒng)時(shí)拷上去的。如果沒(méi)能找到 NtIdr 文件,則會(huì)停止啟動(dòng),顯示 NtIdr 沒(méi)找到

22、的錯(cuò)誤 信息。4、Ntldr 又做了些什么呢?它會(huì)將系統(tǒng)由原來(lái)的16 位實(shí)模式切換到 32 位保護(hù)模式或 64 位長(zhǎng)模式。它的工作是讀取根目錄下的文件,顯然引導(dǎo)菜單,在多操作系統(tǒng)的計(jì)算機(jī)中,可以看到這個(gè)菜單。接著它會(huì)清屏,并在 Win2000 下 顯示一個(gè)黑白的進(jìn)度條,在 XP下顯示XP的標(biāo)志圖同時(shí)顯示下面不斷滾動(dòng)的藍(lán)色進(jìn)度條,提示你它正在加載一些重要 的文件。它在加載什么呢?它首先會(huì)加載、,如果這兩個(gè)文件找不到會(huì)出錯(cuò)停機(jī),并顯示找不到相應(yīng)文件的信息。接 著它讀入注冊(cè)表的 SYSTEM鍵文件,從中找出自動(dòng)啟動(dòng)的各類(lèi)驅(qū)動(dòng)程序,這是很關(guān)鍵的,因?yàn)橛行﹥?nèi)核級(jí)的木馬就是在 這時(shí)啟動(dòng)的。每加載一個(gè)屏幕上

23、的進(jìn)度條就滾動(dòng)一下子。中間如果某個(gè)驅(qū)動(dòng)出問(wèn)題,也可能會(huì)導(dǎo)至系統(tǒng)藍(lán)屏崩潰。5、接下來(lái)的工作由(或)來(lái)進(jìn)行,這是內(nèi)核程序,它做的工作實(shí)在是太多了,這里就不再細(xì)說(shuō)了。它的最后一步 工作就是創(chuàng)建會(huì)話(huà)管理子系統(tǒng),也就是我們上面說(shuō)過(guò)的,由 System 進(jìn)程創(chuàng)建的進(jìn)程。6、 進(jìn)程負(fù)責(zé)創(chuàng)建用戶(hù)模式環(huán)境,由用戶(hù)模式環(huán)境向Windows提供可視的窗口界面。它會(huì)運(yùn)行 BootExecute 中定義的程序,正常情況下是 Autochk ,一個(gè)檢查磁盤(pán)的程序。但有些殺毒軟件會(huì)把自己的 程序加到這里,來(lái)實(shí)現(xiàn)引導(dǎo)時(shí)殺毒,如果您的系統(tǒng)安裝了江民類(lèi)的殺毒軟件,那么此時(shí)就會(huì)執(zhí)行它的引導(dǎo)期殺毒程序, 就是進(jìn)入系統(tǒng)前出現(xiàn)的藍(lán)底藍(lán)字

24、的病毒掃描窗口。還會(huì)執(zhí)行 SessionManager 中的文件刪除、移動(dòng)操作,也就是調(diào)用API:MoveFileEx 并選擇重啟后移除文件的,就是在這個(gè)環(huán)節(jié)執(zhí)行了。當(dāng)前有很多號(hào)稱(chēng)可以刪除一切文件的安全工具都使用了MoveFileEx 來(lái)實(shí)現(xiàn)文件的刪除,但是現(xiàn)在我們可以知道了,它的文件刪除是在這個(gè)階段執(zhí)行的,而這時(shí)驅(qū)動(dòng)程序已經(jīng)加載了,所以用它們來(lái)清除驅(qū)動(dòng)級(jí)的木 馬顯然是不勝任的。創(chuàng)建附加的頁(yè)面文件。加載,這個(gè)東西又是做什么的呢?這是一個(gè)內(nèi)核模式的系統(tǒng)驅(qū)動(dòng)程序,它負(fù)責(zé)了窗口的顯示、屏幕的輸入、鼠標(biāo)鍵 盤(pán)和其它設(shè)備的輸入及消息的傳遞等。所以也是由將顯示器的分辯率設(shè)置為默認(rèn)值的,也就是這個(gè)時(shí)候,咱們

25、的計(jì)算 機(jī)屏幕才真正的細(xì)致起來(lái),在此以前都是VGA模式,當(dāng)然了視頻驅(qū)動(dòng)是上面裝載驅(qū)動(dòng)程序時(shí)就已經(jīng)加載了的,現(xiàn)在只是起到作用而已。再然后呢,就是啟動(dòng)我們上面說(shuō)過(guò)的那兩個(gè)進(jìn)程了。就是與進(jìn)程。啟動(dòng)完這兩個(gè)進(jìn)程后, 就進(jìn)入了無(wú)限的等待, 它在等什么呢?它在等它創(chuàng)建的與, 等著看這兩個(gè)進(jìn)程什么時(shí)候死掉, 一旦他們中有死掉的,馬上罷工,讓系統(tǒng)徹底崩潰。(在XP以后Csrss的死亡是由內(nèi)核使系統(tǒng)崩潰的,而不是),所以千萬(wàn)不要結(jié)束系統(tǒng)進(jìn)程。是做什么的呢?它負(fù)責(zé)的工作是創(chuàng)建或刪除進(jìn)程、線(xiàn)程,控制臺(tái)與虛擬DOS機(jī)的支持等。它到此就開(kāi)始工作了,不再參于后面的啟動(dòng)過(guò)程。但是還有很多工作要做呢,我們接下來(lái)看看后面的啟動(dòng)

26、過(guò)程。7、是做什么的呢?看它的名字應(yīng)該看出個(gè)大概了吧。是的,它是與登錄相關(guān)的,但現(xiàn)在還不到顯示登錄窗口的時(shí)候,它還要先啟動(dòng)及進(jìn)程,然后讀取注冊(cè)表GinaDLL中標(biāo)明的DLL,由這個(gè)DLL來(lái)顯示一個(gè)登錄對(duì)話(huà)話(huà),也就是我們?cè)谶M(jìn)入系統(tǒng)時(shí)輸入用戶(hù)名與口令的窗口。為什么要先啟動(dòng)呢?因?yàn)椋?這是本地安全認(rèn)證子系統(tǒng), 負(fù)責(zé)的就是本機(jī)系統(tǒng)的安全, 用戶(hù)名與口令的驗(yàn)證工作是由 它來(lái)進(jìn)行的。還有一個(gè)我們上面提到過(guò)的進(jìn)程也是這個(gè)時(shí)候由來(lái)啟動(dòng)的,是哪一個(gè)呢?就是那個(gè),這是在用戶(hù)登錄進(jìn)系統(tǒng)后, 啟動(dòng)此進(jìn)程來(lái)進(jìn)行用戶(hù)初始化。你也可以自己加一個(gè)程序與放在一起,那么,在這個(gè)時(shí)候會(huì)將那一位置的所有程序都啟動(dòng)起來(lái)。當(dāng)然了,相信你

27、也想到了,這個(gè)還有那個(gè)GinaDLL也就成了木馬啟動(dòng)的一個(gè)可選位置。8、最后,由啟動(dòng)的開(kāi)始加載標(biāo)明為自啟動(dòng)的各個(gè)服務(wù),及標(biāo)明為手動(dòng)的卻是有必要加載的服務(wù)(它所做的工作我 們?cè)诤竺婕?xì)講)。9、而呢,它在完成用戶(hù)初始化后,就啟動(dòng)了,并功成身退。10、最后,就成了我們的服務(wù)員,等待在那里靜候我們的指令,聽(tīng)從我們的吩咐,進(jìn)行相關(guān)程序的啟動(dòng)與功能的處 理。接著上面的一篇來(lái)講:看完系統(tǒng)的啟動(dòng)過(guò)程后, 我們?cè)倩剡^(guò)頭去看那個(gè)進(jìn)程圖, 是不是明白了很多呢?除掉系統(tǒng)啟動(dòng)環(huán)節(jié)中啟動(dòng)的進(jìn)程外, 我們?cè)倏雌渌倪M(jìn)程,注意看一下兒,剩余的進(jìn)程是不是都是由或中的一個(gè)啟動(dòng)的。是系統(tǒng)的 Shell 程序,響應(yīng)用戶(hù)的請(qǐng)求,并執(zhí)行

28、對(duì)應(yīng)的程序的工作就是由它來(lái)完成的,比如上面我們說(shuō)過(guò)的,您想 畫(huà)圖時(shí),將畫(huà)圖程序啟動(dòng)起來(lái)的就是這個(gè)程序。你想上網(wǎng)時(shí),將瀏覽器啟動(dòng)起來(lái)的也是它。當(dāng)然了,一些用戶(hù)的自動(dòng) 任務(wù)也是由它來(lái)完成啟動(dòng)過(guò)程的。(這些我們將在下面的自啟動(dòng)程序一章中詳細(xì)講解)是系統(tǒng)的服務(wù)控制管理器,由它啟動(dòng)的進(jìn)程稱(chēng)為“服務(wù)”,是一組特殊的進(jìn)程。此類(lèi)進(jìn)程是開(kāi)機(jī)自動(dòng)運(yùn)行的,不依 賴(lài)于用戶(hù)的交互,說(shuō)白了就是不用您管,它自己就會(huì)運(yùn)行并且開(kāi)始自己的工作,工作過(guò)程也無(wú)須您的干預(yù)。說(shuō)到這里,您可能會(huì)想,這不就是木馬所需要的么?不錯(cuò),有很多木馬是以服務(wù)進(jìn)程的形式存在的。那我們可以管 理這些服務(wù)嗎?答案是肯定的,我們的計(jì)算機(jī),我們當(dāng)然有權(quán)力管理了

29、??聪旅娴膱D03-3 :在桌面上“我的電腦”上面按右鍵,選擇“管理”就可以打開(kāi)如上圖所示的窗口。依次選擇:服務(wù)與應(yīng)用程序 服務(wù) 就可以看到上圖右側(cè)的服務(wù)列表。最左側(cè)的一列是服務(wù)的名稱(chēng),需要注意的是這里列出的并非是對(duì)應(yīng)的程序文件的名稱(chēng),而僅僅是服務(wù)本身的名稱(chēng)。 那我們又怎么知道這個(gè)服務(wù)對(duì)應(yīng)的是哪個(gè)程序文件呢?如果我們想停止這個(gè)服務(wù),并刪除對(duì)應(yīng)的程序文件,我們應(yīng)該 怎么做呢?再看下圖 03-4 : 在某一個(gè)服務(wù)上面按鼠標(biāo)右鍵,選擇“屬性”,就可以打開(kāi)此服務(wù)對(duì)應(yīng)的屬性頁(yè)面,如上圖所示。在這里,我們可 以看到一些有用的信息,并對(duì)此服務(wù)進(jìn)行啟動(dòng)、停止、禁用等操作。最上面的是服務(wù)名稱(chēng),第二列是顯示名稱(chēng),第

30、三列是關(guān)于服務(wù)的描述,也就是這個(gè)服務(wù)是做什么用的。當(dāng)然了, 我們不能迷信這里的描述,因?yàn)槟抉R可以自行設(shè)定這個(gè)描述。再下面就是可執(zhí)行文件的路徑,也就是對(duì)應(yīng)的進(jìn)程與程 序文件。這時(shí)我們?cè)俜祷仡^去看 03-2那個(gè)圖,看一看進(jìn)程PID為968的進(jìn)程是不是就是這個(gè) “-knetsvcs ” 進(jìn)程呢?這時(shí)再注意一下,又會(huì)發(fā)現(xiàn)問(wèn)題,首先,在03-2圖中,啟動(dòng)的服務(wù)一共是7個(gè),而在圖 03-03中,已經(jīng)啟動(dòng)的服務(wù)卻有很多,遠(yuǎn)不止7個(gè),再挨個(gè)兒的查看每個(gè)服務(wù)的屬性,又會(huì)發(fā)現(xiàn),有很多服務(wù)名稱(chēng)雖然不同,但對(duì)應(yīng)的可執(zhí)行 文件路徑(進(jìn)程)都是一樣的,都是“- knetsvcs ”進(jìn)程,這又是咋回事呢?這里我們要解釋一下

31、這個(gè)進(jìn)程了,這是 一個(gè)特殊的進(jìn)程。從圖 03-1 中我們可以看到名字為“”進(jìn)程一共是五個(gè),我們沒(méi)辦法區(qū)分它們有什么不同。而在圖03-2 中,我們?cè)俨榭催@五個(gè)進(jìn)程,卻可以從參數(shù)上來(lái)區(qū)分它們了,雖然進(jìn)程名字相同,但它們的參數(shù)卻各不相同。對(duì)了,這就是區(qū) 分他們的方法了,是一個(gè)服務(wù)的宿主程序或者叫容器程序,它的里面是一組服務(wù),而參數(shù)就標(biāo)明了這一組服務(wù)的類(lèi)型。 如果英文不是太差,那么從它的參數(shù)上就可以看明白這一組服務(wù)是做什么用的了。當(dāng)然了, 我們是來(lái)查殺木馬的, 當(dāng)然不會(huì)滿(mǎn)足于僅僅知道這是一組服務(wù), 這一組中是不是會(huì)藏著一個(gè)木馬呢?所以, 我們還要知道這一組服務(wù)都分別是哪一個(gè),怎么來(lái)查看呢?再來(lái)看下圖:

32、03-5上面的是什么呢?上面的就是我們?cè)诘谝徽轮兴岬降?“注冊(cè)表” 。依次選擇 - 開(kāi)始- 運(yùn)行- 輸入“” 確定。就可以調(diào)用系統(tǒng)自帶的注冊(cè)表編輯器來(lái)打開(kāi)注冊(cè)表,再依次展開(kāi):HKEY_LOCAL_MACHINE-SYSTEM-CurrentControlSet-Services ,還記得上面 03-4 圖中的服務(wù)名稱(chēng)么?對(duì)了就是那 個(gè)“ wuauserv ,在Services鍵下打開(kāi)如上圖所示的“ wuauserv ”再展開(kāi),選中其下面的“ Parmeters ,看右邊的 窗口中,是不是找到了此服務(wù)所對(duì)應(yīng)的程序文件了?就是那個(gè)嘍。每一個(gè)中的服務(wù)都可以通過(guò)這種方式找到其對(duì)應(yīng)的程序文件。 看到這

33、里,朋友們是不是頭都大了?這么麻煩???查個(gè)進(jìn)程居然這么麻煩,而且就算找到了,又怎么能知道是正常的程序還是木馬呢?呵,不要著急,也不要怕。上面不是在教給你知識(shí)么,而且在當(dāng)年,沒(méi)有專(zhuān)業(yè)工具之前,我們可都是這么一個(gè)個(gè) 來(lái)找的。當(dāng)然了,現(xiàn)在有了各種專(zhuān)業(yè)工具,的確是沒(méi)必要非手動(dòng)去找了。在狙劍的進(jìn)程管理列表中(圖 03-2),選中,然后按鼠標(biāo)右鍵 - 選擇“查看模塊”,就可以得到上圖中的列表, 注意被藍(lán)條選中的那個(gè)是不是就是費(fèi)半天勁所找到的那個(gè):呢?找是找到了,可如何判斷這是不是系統(tǒng)的服務(wù)模塊呢?這一點(diǎn)微軟為我們想的很周到,他將大多數(shù)的系統(tǒng)文件都 進(jìn)行了數(shù)字簽名,我們只需要檢查一下這個(gè)文件有沒(méi)有系統(tǒng)文件的

34、數(shù)字簽名,就可以準(zhǔn)確的判斷,這是不是一個(gè)系統(tǒng) 文件。如何檢查呢?在列表中按右鍵,選擇“隱蕆微軟簽名項(xiàng)”就可以將所有系統(tǒng)文件隱藏起來(lái),剩下的就是非系統(tǒng)的 文件啦,簡(jiǎn)單不?數(shù)字簽名驗(yàn)證還可以應(yīng)用在對(duì)進(jìn)程的判斷中,在圖 03-2 中,列表中共有 19 個(gè)進(jìn)程,這些個(gè)進(jìn)程中哪些是系統(tǒng)的 哪些又不是呢?我們?nèi)匀豢梢岳脭?shù)字簽名來(lái)判斷,在列表中按右鍵,選擇“隱蕆微軟簽名項(xiàng)”就可以將所有系統(tǒng)進(jìn) 程藏起來(lái),剩下的就是非系統(tǒng)的進(jìn)程。上面也說(shuō)過(guò)了, 一共有5個(gè)進(jìn)程,那我們是不是需要在每個(gè)進(jìn)程上都重復(fù)一遍,查看模塊-隱藏微軟簽名項(xiàng)的過(guò)程呢?答案是不需要,在圖 03-2 的進(jìn)程列表中,按右鍵,里面的一個(gè)“掃描無(wú)微軟簽

35、名模塊”的選項(xiàng),點(diǎn)擊它一下, 就可以列出所有進(jìn)程中所有沒(méi)有簽名的模塊了。還有一個(gè)問(wèn)題是,如果手頭沒(méi)有工具怎么辦呢?就沒(méi)有辦法查看這些進(jìn)程中的模塊了嗎?有的,仍然有辦法,看 下圖 03-7 :依次選擇“開(kāi)始” - “所有程序” - “附件” - “系統(tǒng)工具” - “系統(tǒng)信息”就可以打開(kāi)上面的窗口。在窗口 中選擇“加載的模塊”就可以看到左邊窗口中的信息,看到?jīng)]?我們找的那個(gè)wuauserv 就在里面。這里面列出了所有進(jìn)程加載的所有模塊,可以參考,但也僅僅是參考,更多的情況仍然盡量的使用專(zhuān)業(yè)工具來(lái)檢查,會(huì)更方便更準(zhǔn)確 一些。 O另外,有很多木馬是可以隱藏的,對(duì)于這一類(lèi)木馬,用系統(tǒng)自帶的工具是檢查不出

36、的。注意看上面的幾張圖,發(fā)現(xiàn) 沒(méi)有,圖 03-2 比圖 03-1 中的進(jìn)程多出來(lái)了一個(gè)這就是下面我們要講的“進(jìn)程的隱藏了”。也許有朋友會(huì)說(shuō),是不是 取圖時(shí)這個(gè)進(jìn)程已經(jīng)關(guān)掉了呢?呵,沒(méi)關(guān)系,我這里提供了程序的樣本,您可以下載后運(yùn)行一下試試,看是否可以在 任務(wù)管理器的進(jìn)程列表中看到它。下載地址: 里面還附了隱藏進(jìn)程的源代碼,懂編程的朋友們可以參考一下,看一看隱藏進(jìn)程是如何的簡(jiǎn)單。2、進(jìn)程的隱藏與自我保護(hù)我們通過(guò)上面的講解已經(jīng)知道,進(jìn)程是一個(gè)程序運(yùn)行所必須的,因此檢查進(jìn)程也就成了查殺木馬的關(guān)鍵環(huán)節(jié),我 們知道這一點(diǎn),木馬的作者們當(dāng)然更知道,所以,如何隱藏自己的進(jìn)程,就成了養(yǎng)馬人處心積慮要實(shí)現(xiàn)的。說(shuō)到

37、這里,有懂的朋友們可能要笑了,心里更可能在說(shuō)“連無(wú)進(jìn)程木馬都不知道,還好意思在這里顯擺呢”。一個(gè)程序可以無(wú)進(jìn)程么?可以嗎?真的可以嗎?我可以很負(fù)責(zé)任的告訴您,在Windows系統(tǒng)下一個(gè)程序一定、確定以及肯定的會(huì)有一個(gè)進(jìn)程,沒(méi)有進(jìn)程是不可能的。那所謂的“無(wú)進(jìn)程木馬”又是怎么回事兒呢?第一種無(wú)進(jìn)程木馬是 DLL 注入型木馬:什么是DLL呢? DLL是動(dòng)態(tài)鏈接庫(kù),當(dāng)某一進(jìn)程需要實(shí)現(xiàn)某一功能時(shí),此功能可能是放在某一動(dòng)態(tài)鏈接庫(kù)文件中 的,所以,當(dāng)進(jìn)程需要使用時(shí)就要將動(dòng)態(tài)庫(kù)文件加載到自己的進(jìn)程中。舉例來(lái)說(shuō),如果進(jìn)程就是一個(gè)工廠,那么,調(diào) 用DLL就是將工廠的某一部分工作外包給了DLL去做,而工作地點(diǎn)就在自

38、己的工廠內(nèi)。明白了嗎?進(jìn)程就是工作的廠地,即使外包出去了,也是需要地方干活的?!凹虞d到自己的進(jìn)程中”這一句是關(guān)鍵啊,并不是沒(méi)有進(jìn)程,而是用了 其它程序的進(jìn)程。像我們上面找了半天的那個(gè)服務(wù):,注意一下文件的擴(kuò)展名,不就是 DLL么,這就是一個(gè)典型的 DLL文件,如果這是一個(gè)木馬文件,那么,這就是一個(gè)典型的無(wú)進(jìn)程木馬,因?yàn)樗麤](méi)有自己的進(jìn)程, 我們?cè)谶M(jìn)程列表中看到的是的進(jìn)程。這個(gè)DLL是利用服務(wù)來(lái)加載的,在注冊(cè)表中還有很多位置可以讓一個(gè)DLL加載到其它進(jìn)程中,這在后面自啟動(dòng)程序一節(jié)中我們要講解。但是,通過(guò)注冊(cè)表來(lái)加載是可以的,但卻不是唯一的,還可以通過(guò)另一個(gè)進(jìn)程,來(lái)打開(kāi)現(xiàn)有的進(jìn)程,來(lái)將DLL注入到被

39、打開(kāi)的正常進(jìn)程中,然后,執(zhí)行注入的進(jìn)程退出,這樣,在進(jìn)程列表中仍然看不到木馬的進(jìn)程。第二種無(wú)進(jìn)程木馬是線(xiàn)程注入型的木馬。什么是線(xiàn)程呢?上面說(shuō)了程序就像一個(gè)工廠工人工作的流程表,而進(jìn)程就是將流程真正的運(yùn)行起來(lái),正式的開(kāi)始 動(dòng)手取原料 - 加工- 組裝- 驗(yàn)收等等工作。但是,我們需要明白的一點(diǎn)是,工人們是可以分成小組后同時(shí)進(jìn)行幾個(gè) 環(huán)節(jié)的,第一組工人負(fù)責(zé)取原料、第二組工廠人負(fù)責(zé)加工、而第三組工人負(fù)責(zé)組裝、第四組這樣,可以分工合作 同時(shí)進(jìn)行形成流水線(xiàn)。而這工廠里的一組一組工人,相對(duì)于進(jìn)程與線(xiàn)程而言,就是一個(gè)進(jìn)程中的一個(gè)個(gè)線(xiàn)程。線(xiàn)程注 入又是咋回事呢?線(xiàn)程注入,就是木馬程序?qū)⒁粋€(gè)惡意線(xiàn)程放到了正常進(jìn)程

40、的線(xiàn)程序列中去執(zhí)行,就像在工廠中多增 加了一組自己的工人負(fù)責(zé)制造炸彈,這一組工人與其它的正常的幾組工人沒(méi)有什么關(guān)系,但卻借用了人家的工廠去從 事著非法的勾檔。線(xiàn)程注入與DLL注入的區(qū)別是,線(xiàn)程注入只是增加了一組工人,這組工人是在以工廠的名義在工作,對(duì)外的名義也是工廠的名字,出了問(wèn)題是由工廠負(fù)責(zé)的。而DLL注入呢,是外包,可能會(huì)增加一組工人也可能會(huì)增加多組,是以DLL自己的名義在工廠內(nèi)工作的,出了問(wèn)題是由DLL來(lái)負(fù)責(zé)的。當(dāng)然了,如果問(wèn)題大了,工廠也會(huì)受牽連的。看下面的圖 03-8 :在狙劍的進(jìn)程列表中,選中一個(gè)進(jìn)程按鼠標(biāo)右鍵,選擇“查看線(xiàn)程”就可以查看此進(jìn)程中的每一個(gè)線(xiàn)程,也就是查 看每組工人的

41、情況,還可以對(duì)某個(gè)線(xiàn)程執(zhí)行暫停運(yùn)行、結(jié)束運(yùn)行等操作。我們注意看上面的線(xiàn)程列表,最后一列,顯示了一些DLL的名字,還有一個(gè)是,就是進(jìn)程名字,我查看的就是進(jìn)程的線(xiàn)程列表。明白我上面說(shuō)的區(qū)別了么? ntdll 有三組線(xiàn)程在工作,那是 ntdll 在完成外包業(yè)務(wù)所需要的自己的三組工人;有一 組,那是工廠自己的工人,如果存在線(xiàn)程注入,那么就會(huì)多出一個(gè)線(xiàn)程。但是需要注意的是,有多個(gè)并不代表就一定 有線(xiàn)程注入,因?yàn)橐粋€(gè)工廠也可以同時(shí)存在多條流水線(xiàn)。但只有一個(gè)那么通常情況下就是沒(méi)有線(xiàn)程注入,因?yàn)橐粋€(gè)進(jìn) 程肯定會(huì)有至少一個(gè)線(xiàn)程的存在,也就是說(shuō),一個(gè)工廠必定至少要有一組工人,皮包公司在Windows世界是不允許的

42、。了解了什么是DLL注入型木馬、什么是線(xiàn)程注入型木馬后,查殺他們顯然就很容易了。DLL注入型的,查起來(lái)很簡(jiǎn)單,用上面說(shuō)的方法“查看某一進(jìn)程的模塊列表-再隱藏?zé)o微軟簽名的項(xiàng)”,就可以查出單個(gè)進(jìn)程中被注入的模塊;如果在全系統(tǒng)范圍內(nèi)查找,則使用“搜索無(wú)微軟簽名的模塊”就可以將注入到其它進(jìn) 程中的模塊找出來(lái),而大多數(shù)工具都提供了“卸載模塊”的功能,卸載后就可以刪除了,或直接用“卸載后刪除”的 功能,但有一點(diǎn)是需要注意的,如果該木馬使用了防卸載的技術(shù),那么卸載此模塊時(shí)就會(huì)發(fā)生異常,對(duì)此也不必?fù)?dān)心, 我們還有其它方法清掉它,比如:清除其自啟動(dòng)項(xiàng),不讓他有注入的機(jī)會(huì);或直接刪除其磁盤(pán)文件等。相比較起來(lái),查殺

43、線(xiàn)程注入型的木馬,就比較困難了,我們上面說(shuō)了,線(xiàn)程注入的沒(méi)有自己的文件,只是一段注入 的代碼。也就是說(shuō)他只是混入工廠內(nèi)的一組工人,并沒(méi)有自己的工廠也沒(méi)有自己招牌,想把他與正常的工人區(qū)分開(kāi), 是很困難的。這里提供了一個(gè)線(xiàn)程注入的測(cè)試程序:先試一試看看效果, 運(yùn)行后,會(huì)打開(kāi)一個(gè)窗口, 但你卻在進(jìn)程列表中找不到有新增加的進(jìn)程, 那窗口是如何來(lái)的呢? 這就是由注入到中的線(xiàn)程創(chuàng)建的。這時(shí)你再查看的線(xiàn)程列表,會(huì)發(fā)現(xiàn)多出來(lái)了一個(gè)線(xiàn)程,而線(xiàn)程的“模塊”那一列(圖 03-8 )標(biāo)的名字就是,這時(shí)線(xiàn)程列表中已經(jīng)有兩個(gè)名字為的線(xiàn)程了,但哪一個(gè)是好的,哪一個(gè)是后來(lái)注入的呢?通常 情況下看“基址”那一列(圖 03-8

44、),基址數(shù)值較大的那一個(gè)一般是起動(dòng)起來(lái)較晚的,就是后來(lái)加入的了,選中那一 個(gè)線(xiàn)程選擇“結(jié)束線(xiàn)程”,發(fā)生了什么?是不是那個(gè)窗口被關(guān)閉了?(注意:如果是用狙劍查看的,那么在線(xiàn)程注入 后,查看新線(xiàn)程時(shí),要重新刷新進(jìn)程列表,不然會(huì)發(fā)現(xiàn)不了新注入的線(xiàn)程)當(dāng)然了,上面只是做個(gè)試驗(yàn),讓朋友們親身體會(huì)一下線(xiàn)程注入是怎么一回事兒。真正查殺起線(xiàn)程注入型的木馬來(lái), 用上面的方法顯然是不行的,首先,我們不知道他注入到了哪一個(gè)進(jìn)程中。其次,即使一個(gè)進(jìn)程中有多個(gè)以進(jìn)程名為 名字的線(xiàn)程我們也無(wú)法確定那多出來(lái)的線(xiàn)程就是木馬線(xiàn)程。所以,我們?nèi)匀灰獜淖詥?dòng)項(xiàng)入手來(lái)禁止線(xiàn)程注入。第三種無(wú)進(jìn)程木馬是純驅(qū)動(dòng)型木馬什么是驅(qū)動(dòng)型木馬呢?就

45、是全部功能放到了驅(qū)動(dòng)程序中去完成(當(dāng)然了,純驅(qū)動(dòng)型的并不多見(jiàn), 大多驅(qū)動(dòng)型木馬都是配了一個(gè)程序。)什么又叫驅(qū)動(dòng)程序呢?驅(qū)動(dòng)程序顧名思義就是驅(qū)使設(shè)備動(dòng)起來(lái)的程序。A呵,可能不準(zhǔn)確,但卻很容易理解。其作用是讓特殊的硬件和 Windows操作系統(tǒng)可以交換數(shù)據(jù),比如我們按下了鍵盤(pán)的A鍵,那鍵盤(pán)驅(qū)動(dòng)就要告訴 Windows系統(tǒng)“這家伙按下了 A鍵,你看咋辦吧”,它只是告訴一聲,后面的工作就由系統(tǒng)來(lái)處理了,系統(tǒng)會(huì)根據(jù)不同的情況 進(jìn)行不同的處理,如果你是在打字,那就把A這個(gè)字符顯示在你的輸入頁(yè)面中,如果你用的是五筆,顯然直接顯示個(gè)A是不行的,Windows系統(tǒng)就會(huì)把你輸入 A的這個(gè)信息轉(zhuǎn)給了輸入法程序最終實(shí)

46、現(xiàn)你按A的目的。但驅(qū)動(dòng)又怎么會(huì)與木馬有了關(guān)系呢?這就要從頭說(shuō)起了, 話(huà)說(shuō)當(dāng)年木馬與驅(qū)動(dòng)本來(lái)是分處于兩個(gè)天地, 互不相干的。 但隨著殺毒軟件、安全工具等木馬殺手對(duì)木馬的圍追堵截越來(lái)越是兇狠,木馬終于感到有點(diǎn)窮途未路了,在最后關(guān)頭, 它盯上了驅(qū)動(dòng)程序!為什么盯上了驅(qū)動(dòng)呢?因?yàn)轵?qū)動(dòng)程序由于其特殊性,使得它在系統(tǒng)中有著超越一切的權(quán)力,而且 有著優(yōu)先加載執(zhí)行的優(yōu)勢(shì),它是做為操作系統(tǒng)的一部分來(lái)運(yùn)行的。詳細(xì)情況涉及到系統(tǒng)權(quán)限的劃分與優(yōu)先級(jí)設(shè)定,有 興趣的可以查閱相關(guān)資料,這里只要明白一點(diǎn)就行“系統(tǒng)的權(quán)限分為兩種R0與R3, 般的程序全部為 R3權(quán)限,其行為受到了很多限制;而操作系統(tǒng)與驅(qū)動(dòng)則為R0權(quán)限,擁有對(duì)

47、整個(gè)計(jì)算機(jī)的全部權(quán)力,可以為所欲為”。舉例來(lái)說(shuō),殺毒軟件就像一個(gè)公司的人力部,對(duì)員工的行為進(jìn)行考核,發(fā)現(xiàn)不好的就給予懲罰或辭退。如果木馬總 是隱藏在員工群里,那么就會(huì)受到嚴(yán)格的檢查與監(jiān)管,一旦被查出有問(wèn)題就會(huì)被立即辭退。而操作系統(tǒng)就是公司的董 事會(huì)或股東大會(huì),驅(qū)動(dòng)程序是董事或股東,有著超出人力部門(mén)監(jiān)管的權(quán)力。為了逃脫追殺,開(kāi)始有木馬以驅(qū)動(dòng)程序的身份出現(xiàn),當(dāng)然了,木馬這個(gè)驅(qū)動(dòng)是沒(méi)有硬件設(shè)備的,呵,如果中一個(gè)木 馬它就附帶一個(gè)設(shè)備,那么,哪怕它只是給一支鼠標(biāo),我也會(huì)沖天大喊“木馬們,都到我這里來(lái)吧”。所以它們有一 個(gè)好聽(tīng)且很容易聽(tīng)明白的名字“虛擬設(shè)備驅(qū)動(dòng)程序”。當(dāng)木馬成為公司的董事的時(shí)候, 身為人

48、力部門(mén)的安防程序開(kāi)始感到郁悶, 明明發(fā)現(xiàn)那家伙就有問(wèn)題, 但偏偏沒(méi)權(quán)力 辭退它。于是,殺毒軟件開(kāi)始謀求同樣的身份,于是殺毒軟件也開(kāi)始掛驅(qū)動(dòng),使其有了董事的身份來(lái)兼人力監(jiān)管,于 是,新一輪的斗爭(zhēng)開(kāi)始了。而這一輪的斗爭(zhēng)更是殘酷,本來(lái)在員工層的斗爭(zhēng)轉(zhuǎn)到了高層,本來(lái)斗爭(zhēng)的結(jié)果也就是員工 被辭退,還不至于傷筋動(dòng)骨涉及公司根本,但現(xiàn)在卻是一不小心就讓公司整個(gè)解體了。對(duì)應(yīng)于我們這些可憐的用戶(hù)來(lái) 說(shuō),殺軟與木馬的斗爭(zhēng),一個(gè)不好惹來(lái)的就是藍(lán)屏死機(jī)、系統(tǒng)崩潰。OK 了解了驅(qū)動(dòng)程序后,我們就要回到正題來(lái)了, 我們?nèi)绾沃老到y(tǒng)加載了哪些驅(qū)動(dòng)呢?又如何知道哪些驅(qū)動(dòng)是正常的系統(tǒng)驅(qū)動(dòng),哪些是木馬的驅(qū)動(dòng)呢?看下圖 03-9

49、:在桌面我的電腦圖標(biāo)上按右鍵,依次選擇“屬性 - 硬件 - 設(shè)備管理器”就可以打開(kāi)上面的窗口了,再勾選上“查 看 顯示隱藏的設(shè)備”就可以看到“非即插即用驅(qū)動(dòng)程序”。除了非即插即用外,其它的同級(jí)項(xiàng)目都是您機(jī)器上的硬件及它們的信息、資源、驅(qū)動(dòng)等,他們是根正苗紅的正經(jīng)設(shè) 備。由于這些都與硬件有關(guān),所以,木馬動(dòng)它們的可能性很小,必竟木馬也不想你的機(jī)器崩潰啊。因此,大多數(shù)木馬 驅(qū)動(dòng)都隱藏在“非即插即用驅(qū)動(dòng)程序”下面,而這里面的則是那些虛擬設(shè)備了(注:非即插即用驅(qū)動(dòng)程序并非就是虛 擬設(shè)備驅(qū)動(dòng)程序,這涉及到以前老版系統(tǒng)中的一些個(gè)問(wèn)題,這里不再細(xì)說(shuō),您只需要明白,在當(dāng)前的情況下,這里面 大多都是虛擬設(shè)備驅(qū)動(dòng)程

50、序就可以了。)選中某一個(gè)項(xiàng)點(diǎn)鼠標(biāo)右鍵,再選屬性,得到下圖 03-10 :一看到這張圖, 你最感興趣的一定是 “停止” 這個(gè)按鈕, 但我不得不很遺憾的告訴您 “是否能停止驅(qū)動(dòng)程序的運(yùn)行, 還要看這個(gè)驅(qū)動(dòng)程序是否愿意停止運(yùn)行”,是不是失望了?呵,應(yīng)該是意料中的,如果木馬可以這么輕易的停掉,它 們還混什么吶?從這里不要奢望得到額外收獲,我們只需要了解一點(diǎn)就夠了,這個(gè)驅(qū)動(dòng)的狀態(tài)是“已經(jīng)啟動(dòng)”。接下來(lái)要看的是“驅(qū)動(dòng)程序詳細(xì)信息”這一欄。點(diǎn)一下,得到下面的這張圖03-11 :看到?jīng)]?這里面的就是驅(qū)動(dòng)程序?qū)?yīng)的文件了,至于下面的提供商、版權(quán)什么的,參考一下也就得了,如果木馬愿 意,它可以說(shuō)它是“天宮”出品,

51、版權(quán)屬于“玉皇大帝”,那這里會(huì)絲毫不打折扣的給它顯示出來(lái),你說(shuō)能信嗎?按上面說(shuō)的方法,你可以查看所有系統(tǒng)中加載的驅(qū)動(dòng)程序,但很顯然,這么做的確是很麻煩,那有沒(méi)有省事點(diǎn)的方 法呢?有,我們看下圖 03-12:看到上面這張圖是不是有點(diǎn)眼熟?對(duì)了, 就是上面我們查找模塊時(shí)用到的圖, 打開(kāi)方式同上, 向上翻就可以看到了。 藍(lán)條選中的那個(gè),不就是與圖 03-11 中顯示的是一個(gè)么。這里面列出了所有的驅(qū)動(dòng)程序,不用一個(gè)一個(gè)找了。到這里是不是有朋友有點(diǎn)火大了?明明有簡(jiǎn)單的法子,卻帶著我們繞了這么大一個(gè)圈子。呵,上圖中的系統(tǒng)信息, 其實(shí)也就是系統(tǒng)自帶的一個(gè)工具,屬于專(zhuān)業(yè)工具范圍內(nèi)的,且并不是太好使,木馬想在這

52、里隱藏信息很容易,而且禁 止這個(gè)的運(yùn)行也很簡(jiǎn)單。我們需要多了解幾個(gè)法了,以備不時(shí)之需,另外,我們需要的是盡量多的學(xué)一些知識(shí),這才 是根本,了解了原理、懂得了知識(shí),才能真正的成為高手,高手絕非只會(huì)使用工具。說(shuō)到工具,那我們?cè)倏纯磳?zhuān)業(yè)工具對(duì)驅(qū)動(dòng)程序的顯示:打開(kāi)狙劍 - 選擇基本功能中的“內(nèi)核模塊”,看到?jīng)]?不就在這里么。這么多,又如何來(lái)區(qū)分哪個(gè)是正常的哪個(gè)是 可疑的呢?很簡(jiǎn)單,方法與我們篩選進(jìn)程是一樣的,按右鍵 - 選擇“隱藏微軟簽名項(xiàng)”,剩下的,就是非系統(tǒng)的驅(qū)動(dòng) 了。這里同樣提供了“停止運(yùn)行”、“卸載模塊”等功能,但我還得遺憾的告訴大家,卸載它也得它自己愿意才行,但 想來(lái)木馬是不會(huì)愿意被卸載吧,

53、那我們就沒(méi)辦法了么?有,方法仍然與上面的相同,從自啟動(dòng)程序入手,禁止它的加 載;或強(qiáng)制刪除它的文件。那驅(qū)動(dòng)級(jí)木馬是不是就是真正的無(wú)進(jìn)程呢?進(jìn)程列表中找不到任何一個(gè)驅(qū)動(dòng)程序的進(jìn)程,而它也不像模塊與線(xiàn)程一樣,在其它進(jìn)程內(nèi)能夠找到,是不是真的可以無(wú)進(jìn)程運(yùn)行呢?當(dāng)然不是,我前面已經(jīng)說(shuō)了,一個(gè)程序的運(yùn)行,一定、 確定以及肯定的會(huì)依托一個(gè)進(jìn)程,那這些驅(qū)動(dòng)在哪個(gè)進(jìn)程里呢?那就是System 進(jìn)程,它們是做為系統(tǒng)的一部分來(lái)運(yùn)行的。第四種無(wú)進(jìn)程木馬就是利用技術(shù)手段隱藏進(jìn)程的木馬 這顯然就不屬于無(wú)進(jìn)程了,上面說(shuō)的三種,的確是沒(méi)有自己的進(jìn)程,只是利用了其它的進(jìn)程。而利用技術(shù)手段隱藏 進(jìn)程的木馬,則是有自己的進(jìn)程,但

54、是如果你破解不了他的隱藏技術(shù),那你就看不到它的進(jìn)程。就像上面我們拿出來(lái) 的那個(gè)一樣,在任務(wù)管理器中看不到它的進(jìn)程,而在狙劍中卻能看到,這就是隱藏與破解隱藏后的結(jié)果了。進(jìn)程是如何隱藏的呢?這無(wú)可避免的會(huì)涉及到一些技術(shù)問(wèn)題,下面我們盡量簡(jiǎn)單明了的說(shuō)一說(shuō),詳細(xì)的實(shí)現(xiàn)細(xì)節(jié), 請(qǐng)參閱相關(guān)資料。在這里,我所想達(dá)到的目的,并非是讓您也同樣寫(xiě)出一個(gè)能隱藏自身的木馬,而是讓您明白,什么 樣的手段可以隱藏木馬的進(jìn)程,木馬又為什么會(huì)隱藏,而想破解這種解藏將它揪出來(lái),又需要什么樣的技術(shù),好有針 對(duì)性的選擇一些專(zhuān)業(yè)工具。同時(shí),需要注意的是,隱藏進(jìn)程的技術(shù)同樣適用于隱藏DLL模塊程序、隱藏驅(qū)動(dòng)程序,下面為了描述方便,統(tǒng)一

55、說(shuō)為進(jìn)程。Windows系統(tǒng)給我們的開(kāi)發(fā)人員提供了幾種列出系統(tǒng)中所有的進(jìn)程、模塊、與驅(qū)動(dòng)程序的方法,最常見(jiàn)的也是最常 用的方法就是調(diào)用系統(tǒng) API:CreateToolHelp32Snapshot 、 EnumProcess、 EnumProcessModules 等,如果您不是開(kāi)發(fā)人 員,您不用關(guān)心這幾個(gè)是什么東西,只需要明白,他們是獲取進(jìn)程列表的第一層手段,我們調(diào)用這幾個(gè)其實(shí)就是在告 訴系統(tǒng),我們需要進(jìn)程列表,然后系統(tǒng)就會(huì)將列表返回給我們。而這幾個(gè) API 在接到請(qǐng)求后又做了什么呢?他們會(huì)調(diào)用 ZwQuerySystemInformation , ZwQuerySystemInformat

56、ion 會(huì)調(diào)用KiSystemService 切入內(nèi)核進(jìn)入 R0權(quán)限,然后自SSDT表中查取得NtQuerySystemlnformation的地址,并調(diào)用其指向的實(shí)際代碼,而 NtQuerySystemInformation 的作用則是自系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)中取相應(yīng)的數(shù)據(jù),再順原路返回去。在中間任何一個(gè)環(huán)節(jié)進(jìn)行攔截都可以實(shí)現(xiàn)隱藏進(jìn)程的目的,這種攔截有一個(gè)名字叫做“HOOK,在切入內(nèi)核進(jìn)入 R0權(quán)限前進(jìn)行HOOK稱(chēng)為應(yīng)用層HOOK而在之后進(jìn)行 HOOI則是內(nèi)核HOOK后者需要用驅(qū)動(dòng)才能實(shí)現(xiàn)了。什么是HOOK什么是SSDT我們來(lái)舉例說(shuō)明:Windows操作系統(tǒng)就像一個(gè)為我們管理電腦的服務(wù)公司,而他的工

57、作機(jī)制是逐級(jí)上報(bào),各負(fù)其責(zé)的,他派了一個(gè)服 務(wù)人員時(shí)刻的跟著我們,看我們都有什么要求。當(dāng)我們想查看系統(tǒng)中都有什么進(jìn)程時(shí), 我們會(huì)告訴服務(wù)員, 我們想了解當(dāng)前都有哪些進(jìn)程, 那么服務(wù)員就會(huì)把我們 的要求報(bào)上去,報(bào)給誰(shuí)呢?他要先知道哪個(gè)部門(mén)負(fù)責(zé)哪個(gè)工作才行,SSDT表就是做這個(gè)的,SSDT表就像是一個(gè)路標(biāo),指明了什么樣的工作應(yīng)該由哪一個(gè)部門(mén)負(fù)責(zé)處理。通過(guò)查表得知負(fù)責(zé)的部門(mén)后,工作就被移交到了那個(gè)部門(mén),工作完 成后,部門(mén)會(huì)把工作結(jié)果交回給服務(wù)員,服務(wù)員再交給我們,而我們也就得到我們想要的結(jié)果了。應(yīng)用層HOOK,就像是服務(wù)員被木馬偷偷的替換了,當(dāng)我們提出要求時(shí)呢,他會(huì)檢查是否對(duì)他有害,或?qū)?duì)他有 害的

58、信息去掉,比如我們想查看進(jìn)程,那他在將結(jié)果交給我們時(shí),卻把木馬的進(jìn)程自結(jié)果中抹去了,這樣,我們自然 是看不到木馬進(jìn)程了。而最常見(jiàn)的內(nèi)核 HOOK則是HOOK SSDT上面說(shuō)了 SSDT就是一張表,標(biāo)明了什么工作應(yīng)該由什么部門(mén)負(fù)責(zé)。而 SSDT HOO也就是木馬將表上的內(nèi)容給改了,本來(lái)交給A部門(mén)負(fù)責(zé)的工作被改成了交給由木馬負(fù)責(zé),這樣,服務(wù)員在上報(bào)我們的請(qǐng)求時(shí),一查表發(fā)現(xiàn)查看進(jìn)程的工作是由木馬負(fù)責(zé)的,他就把這請(qǐng)求交給木馬了,而木馬呢?他可是知道 表中原來(lái)的內(nèi)容是什么的呀,他只是對(duì)請(qǐng)求進(jìn)行一下過(guò)濾,發(fā)現(xiàn)沒(méi)有對(duì)自己有害的,就直接轉(zhuǎn)交給原部門(mén)了,對(duì)自己 有害的,自然也就視情況濾掉或涂改了。我們先看看SS

59、DT到底是什么樣子的,看下圖(04-14 ):依次選擇狙劍-擴(kuò)展功能-SSDT檢查-篩選可疑項(xiàng),就可以看到上圖,那就是一個(gè)SSDT表,從左到右依次是序號(hào)、當(dāng)前地址、所在模塊、HOO啖型、原地址、函數(shù)名。上面都是狙劍自己對(duì) SSDT的HOOK當(dāng)前安全軟件很多也用到了SSDT-HOO技術(shù)來(lái)實(shí)現(xiàn)對(duì)系統(tǒng)的安全防護(hù)。例如上面的第11號(hào)函數(shù),所在模塊是“狙劍”,HOOK類(lèi)型是“ HOOK,函數(shù)是“ NtAdjustPrivilegesToken ”。這是狙劍本身對(duì) SSDT的一個(gè)HOOK用的技術(shù)就是 HOOK HOOK勺函數(shù)是用于增加進(jìn)程 權(quán)限的。HOOK這個(gè)的目的是“在木馬進(jìn)程為自己增加權(quán)限的時(shí)候進(jìn)行攔

60、截,提醒用戶(hù)注意”這在主動(dòng)防御一章中會(huì)詳 細(xì)講解。每一個(gè)函數(shù)都實(shí)現(xiàn)了某一種功能,比如:結(jié)束進(jìn)程是由 NtTerminateProcess 來(lái)完成的(上圖中最后的那個(gè) 257 號(hào) 函數(shù)),如果HOOKT這個(gè),那么在進(jìn)程結(jié)束前,就有機(jī)會(huì)更改結(jié)果了,可以拒絕被結(jié)束??聪聢D(03-15 )當(dāng)你試圖在任務(wù)管理器中結(jié)束狙劍的進(jìn)程時(shí),系統(tǒng)會(huì)拒絕你的操作,其實(shí)這并不是系統(tǒng)拒絕的,而是狙劍自己,由 于狙劍HOOKT SSDT所以,結(jié)束進(jìn)程的工作服務(wù)員都交給他去做了,他一旦發(fā)現(xiàn)結(jié)束的就是他自己,那他直接告訴服 務(wù)員這個(gè)進(jìn)程不能結(jié)束,然后服務(wù)員就把這個(gè)結(jié)果給我們了,其實(shí)我們的這個(gè)請(qǐng)求并沒(méi)有真的到達(dá)應(yīng)該送交的部門(mén)。而

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論