




已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
寫這一系列文章的目的有兩個:一是告訴大家絕影還在。二是嘗試向大家介紹一種新的技術(shù),我把他叫做“動態(tài)感染”,也許這樣命名不規(guī)范,但我至今仍未找到對這一技術(shù)的比較科學(xué)合理的命名方式。所以姑且把它叫做“動態(tài)感染”吧。 所謂的“感染”大家應(yīng)該比較熟悉,它的原理是在一個PE文件中新添加一個節(jié)(或者從已有的節(jié)中尋找一塊足夠大的可用空間),將感染代碼寫入,再修改原PE文件的EntryPoint的代碼,改為Jmp XXXXXXXX(XXXXXXXX為感染代碼的起始位置),當(dāng)感染代碼執(zhí)行完畢后,再使用一條Jmp OldEntryPoint代碼跳回PE程序的原入口點。這樣當(dāng)PE文件運行時就會先執(zhí)行我們寫入的感染代碼。對PE文件的分析和更改技術(shù)都比較成熟,唯一的難點是所有感染代碼都要使用自定位代碼,或者修改PE文件的導(dǎo)入表等,加入對感染代碼所使用的DLL函數(shù)的支持。這一感染過程是靜態(tài)的,必須在PE文件沒有運行的情況下進行;同時這一方法也是很不妥的,畢竟修改了原始的PE文件,恢復(fù)起來相當(dāng)困難,幾乎對其進行了不可逆的破壞。 以下要講的“動態(tài)感染”,都是在內(nèi)核態(tài)下,所以我們要做的,也就是一個內(nèi)核模塊(有些人叫做“驅(qū)動”,但我覺得這樣并不嚴格)。當(dāng)一個PE文件開始執(zhí)行時,內(nèi)核中先要進行很多工作:分配內(nèi)存、創(chuàng)建線程、加載導(dǎo)入表中的DLL等,這里就不詳細闡述了。我們想要做的,是在執(zhí)行到EntryPoint之前,用ZwAllocateVirtualMemory向目標(biāo)進程中分配內(nèi)存,寫入感染代碼,將原始的EntryPoint修改為感染代碼的起始,然后我們的感染代碼執(zhí)行一系列操作,最后Jmp OldEntryPoint,將控制權(quán)交回原來的代碼。整個過程不修改原始PE文件,可隨時卸載我們的內(nèi)核模塊。 這一技術(shù)的意義在于我們要動態(tài)地保護指定的應(yīng)用程序不被其他DLL入侵(防止木馬等)。我們知道DLL入侵是比較普遍的入侵方式,可以用鉤子,也可以用遠程線程。鉤子的方法相信大家都比較熟悉,遠程線程的方法除了可以用LoadLibrary作為線程函數(shù)加載一個入侵DLL,還有一種改進的辦法,就是直接用純自定位代碼注入目標(biāo)進程。這類方法在沒有殺毒軟件的情況防范還是有一定的困難,況且現(xiàn)在很多病毒還能關(guān)閉殺毒軟件,或者欺騙殺毒軟件。如果我們在目標(biāo)進程已經(jīng)運行起來的情況下再來保護,可能已經(jīng)來不及了,有些DLL的注入是非??斓?。而我們現(xiàn)在要討論的技術(shù),是在整個進程還沒有完全啟動的情況下(尚沒有一個線程被創(chuàng)建)來進行,我們的代碼進入目標(biāo)進程的時間相當(dāng)早,有足夠的時間來完成防護準備。如果你使用OllyDbg來調(diào)試我們的被保護程序,你會發(fā)現(xiàn),當(dāng)OD中斷在程序的入口點時,我們的代碼已經(jīng)完成了運行。 這系列文章我會分為幾個部分來寫:使用匯編語言編寫內(nèi)核態(tài)程序;獲取內(nèi)核基址、SSDT基址;Hook SSDT監(jiān)視進程創(chuàng)建;在進程的第一個線程執(zhí)行前向目標(biāo)進程分配內(nèi)存并注入代碼;編寫自定位的感染代碼(代碼簡單,因為你如果已經(jīng)學(xué)到這里了,你自己就可以寫復(fù)雜的代碼,也可以使用LoadLibrary載入DLL來實現(xiàn)復(fù)雜的功能)。 為什么要用匯編語言來寫內(nèi)核態(tài)程序呢?一是因為我已經(jīng)習(xí)慣了;二是SSDT鉤子函數(shù)的簡便;三是由于要寫自定位的代碼,對高級語言來說還是相當(dāng)困難(至少我還沒找到簡單有效的方法,例如要計算注入的代碼的長度,除非你事先反匯編);四是你順便可以學(xué)習(xí)用匯編語言來編寫程序。當(dāng)你學(xué)完了這個系列的文章,你會發(fā)現(xiàn),在我們寫的這個小程序中,大部分是內(nèi)核態(tài)下的代碼,同時又有用戶態(tài)下的代碼(注入到目標(biāo)進程中的感染代碼),這是個非常有意思的小東西。 要學(xué)習(xí)這系列的文章,你首先要準備以下工具: 一、Mirosfot Visual Studio 2003(用這個只是編輯器,也可以用更高或更低版本的Visual Studio,但某些匯編、連接的設(shè)置可能會有變化;如果你會用makefile而且你是編程牛人直接用記事本編寫代碼那就忽略)。 二、MASM32V10開發(fā)包(其實V9,V8是一樣的)。 三、KmdKit(匯編語言用的驅(qū)動程序開發(fā)包)。 四、KmdManager.exe(加載并測試我們編寫的內(nèi)核程序,在KmdKit中有)。 五、OllyDbg(可以測試或者觀察我們的代碼)。 六、VMWare之類的虛擬機(可選,測試用,免得你的機器頻繁藍屏,當(dāng)然,如果你對內(nèi)核開發(fā)很有信心可忽略)。 你需要掌握的技術(shù)知識有以下幾點: 一、匯編語言基礎(chǔ)知識(如果你會使用MASM32開發(fā)包,已經(jīng)用匯編語言寫過小應(yīng)用程序那就OK,否則你還是去看下Windows環(huán)境下匯編語言程序設(shè)計吧)。 二、用匯編語言編寫內(nèi)核程序的基礎(chǔ)知識(會用KmdKit就OK,不過不會也沒關(guān)系,我會盡力跟大家講解明白)。 三、對內(nèi)核程序的認識和理解(請不要再停留在Cxxxx類的使用或某個Windows API的調(diào)用上,否則你根本就不會知道我在講什么)。 四、會使用OllyDbg(會使用而已,不是說會破解)。 通過這一系列的文章,你可以學(xué)習(xí)到以下的知識: 一、使用匯編語言開發(fā)內(nèi)核程序的知識(包括使用Visual Studio編寫、匯編、連接匯編語言代碼的知識,makefile我就不講了,我自己也馬不實在的)。 二、對內(nèi)核有所認識和了解(至少知道什么是內(nèi)核,什么是內(nèi)核程序、內(nèi)核基址等概念)。 三、對SSDT有所了解(你現(xiàn)在也可以去baidu上搜索一下什么是SSDT,做好準備)。 四、在內(nèi)核上Hook SSDT(也可以直接Inline hook某些內(nèi)核函數(shù),但還是先一步一步來,SSDT穩(wěn)當(dāng)些)。 五、通過Hook內(nèi)核的某些函數(shù)監(jiān)視進程的創(chuàng)建,在內(nèi)核態(tài)上向用戶態(tài)應(yīng)用程序分配內(nèi)存并拷貝數(shù)據(jù)(或代碼)進去。 六、編寫自定位代碼(包括在用戶態(tài)上尋找Kernel32.dll基址等)。 本文所使用的環(huán)境是Windows XP SP3。因為XP比較熟悉了,而且買電腦的時候送的XP是正版,而且KmdKit又沒有Windows 7的版本,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鍋爐能效考試試題及答案
- 幾何圖形五年級試卷及答案
- 湖南版二年級試卷及答案
- 新版勞動合同范本
- 2025年旅游地理與旅游資源管理考試卷及答案
- 2025年機器人技術(shù)與行業(yè)應(yīng)用考試試題及答案
- 2025年機械工程師職業(yè)資格考試試題及答案
- 2025年區(qū)塊鏈技術(shù)應(yīng)用與發(fā)展研究考試試卷及答案
- 2025年軟件測試工程師考試試題及答案
- 2025年心理咨詢師面試考核試卷及答案
- 山東省夏季普通高中學(xué)業(yè)水平考試(會考)生物試題及參考答案
- 全國班主任比賽一等獎班主任經(jīng)驗交流《春風(fēng)化為雨潤物細無聲》精美課件
- 2025年江蘇鹽城射陽縣人民醫(yī)院招聘編外人員100人歷年高頻重點提升(共500題)附帶答案詳解
- 以人為本的老舊小區(qū)改造經(jīng)驗
- Rh分型及其臨床意義
- 湖北省武漢部分學(xué)校2025屆高三第三次測評英語試卷含解析
- X射線(RAY)上崗證考試試題及答案
- 游戲研發(fā)團隊管理及創(chuàng)新激勵機制設(shè)計
- 《工藝標(biāo)準培訓(xùn)》課件
- 2024年度高速公路監(jiān)控系統(tǒng)維護承包合同
- 2021年修訂版《中華人民共和國安全生產(chǎn)法》考試題庫
評論
0/150
提交評論