




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
惡意代碼分析基礎本講要點1.計算機啟動過程2.程序的生成和運行3.PE文件4.程序的逆向分析5.應用案例1.計算機啟動過程(1)計算機初始化啟動過程及其安全性:1)計算機初始化啟動過程按下電源開關,電源就開始向主板和其它設備供電BIOS的啟動代碼進行加電后自檢(Power-OnSelf-Test,POST)BIOS的啟動代碼選擇啟動盤1.計算機啟動過程(1)計算機初始化啟動過程及其安全性:計算機初始化啟動過程中的安全問題由于BIOS芯片和COMSRAM芯片能夠被改寫,所以,通過改寫BIOS可以加載病毒程序或者損壞BIOS內容,著名的CIH病毒就是這類惡意代碼的代表。當COMS感染病毒時,由于存儲空間較小和不可自動執行的特性,經常被忽略。BIOS芯片的恢復方式主要通過芯片編輯器寫入或直接找主板經銷商更新,若能顯示,也可通過軟件進行更新?,F階段的BIOS,都有關于BIOS寫入有效或無效的設置,作為預防,建議將BIOS寫入設置成無效。1.計算機啟動過程(1)操作系統啟動過程及其安全性分析:2)操作系統啟動過程讀取指定啟動順序中的存儲設備的主引導記錄硬盤啟動操作系統啟動1.計算機啟動過程(2)操作系統啟動過程及其安全性分析:2)操作系統啟動過程的安全問題在操作系統啟動過程,病毒主要存在于主引導扇區、引導扇區和分區表中,這種類型的病毒稱為引導區病毒。隨著操作系統的發展,尤其是Windows7、Windows8出現以后,分區方式發生了改變,一部分引導區病毒已經失效了。內核裝載階段是病毒隨啟動而加載的主要階段,在這個啟動過程中,內核裝載主要與Smss.exe和Winlogon.exe等進程有關,因此,病毒也可能存于其中。2.程序的生成和運行(1)程序生成和運行的典型過程:1)編譯型程序。程序在執行前編譯成機器語言代碼,運行時直接供機器執行。2.程序的生成和運行(1)程序生成和運行的典型過程:2)解釋型程序。程序在用編程語言編寫后,不需要編譯,以文本方式存儲原始代碼,在運行時,通過對應的解釋器解釋成機器碼后再運行,如JavaScript、Basic語言編寫的程序,執行時逐條讀取解釋每個語句,然后再執行。2.程序的生成和運行(2)編譯/鏈接與程序的構建:1)程序的編譯編譯器(含匯編器)的基本功能是,將使用一種高級語言編寫的程序(源程序)翻譯成目標代碼(機器語言代碼)。編譯過程主要包含3個步驟:預處理。編譯、優化。目標代碼生成。2.程序的生成和運行(2)編譯/鏈接與程序的構建:2)程序的鏈接鏈接器的基本功能是,將編譯器產生的多個目標文件合成為一個可以在目標平臺下執行的文件。這里說的目標平臺是指程序的運行環境,包括CPU和操作系統。其核心工作是符號表解析和重定位。鏈接按照工作模式分為兩類:靜態鏈接。動態鏈接。2.程序的生成和運行(3)加載與程序的運行:為什么雙擊一個exe程序文件(PE文件)它就會被Windows運行?為什么系統要把程序文件裝載到內存再執行呢?3.PE文件(1)PE文件的概念:1)什么是PE文件?微軟Windows環境下可執行文件的標準格式是PE(PortableExecutable,可移植執行體)文件,其目的是為所有Windows平臺設計統一的文件格式,即為Windows平臺的應用軟件提供良好的兼容性和擴展性。微軟自WindowsNT3.1首次引入PE文件格式以來,后續操作系統結構變化、新特性添加、文件存儲格式轉換等都沒有改變PE文件格式。64位的Windows只對PE格式作了一些簡單的修飾,新格式叫做PE+或PE32+,并未加入新的結構,只簡單的將以前的32位字段擴展為64位。3.PE文件(1)PE文件的概念:2)PE文件的作用PE文件不僅包含了二進制的機器代碼,還自帶許多其他信息,如字符串、菜單、圖標、位圖、字體等在程序被執行時,操作系統會按照PE文件格式的約定去相應的地方準確地定位各種類型的資源,并分別裝入內存的不同區域。PE文件數據資源定位采用鏈表與固定格式相結合的方式,前者利用鏈表管理資源,資源的具體位置靈活,后者要求數據結構大小固定,其位置也相對固定。3.PE文件(1)PE文件的概念:
3)PE文件與惡意代碼PE——“可移植的執行體”意味著此文件格式可用于所有Windows操作系統平臺和所有CPU上。對PE文件結構及相關技術的研究是惡意代碼研究的基礎,因為惡意代碼的執行必將直接或者間接地依賴于PE文件。例如,Win32病毒感染文件時,基本上都會將EXE和DLL文件作為目標。計算機病毒等許多惡意代碼本身也是可執行的,其文件也遵循PE文件結構。。3.PE文件(2)PE文件結構:1)PE文件總體結構3.PE文件(2)PE文件結構:
2)PE文件執行基本過程當PE文件被執行時,PE裝載器檢查DOSMZ文件頭里的PE頭偏移量。如果找到,則跳轉到PE頭。PE裝載器會檢查PE頭的有效性,確定該PE文件的總體信息,緊接著讀取節表中的節信息,并采用文件映射方法將相應節映射到內存,PE裝載器將處理PE文件中最重要的導入表,從導入表中獲取函數字符串名稱信息、DLL名稱信息、導入函數地址表項起始偏移地址等,最終完成PE文件的執行。3.PE文件(3)地址映射:1)什么是虛擬內存?Windows的內存可以被分為兩個層面:物理內存和虛擬內存。其中,物理內存比較復雜,需要進入Windows內核級別ring0才能看到。通常,在用戶模式下,我們用調試器看到的內存地址都是虛擬內存。3.PE文件(3)地址映射:2)PE文件與虛擬內存之間的映射3.PE文件(3)地址映射:3)地址映射的計算虛擬地址(VA)與相對虛擬地址(RVA)的轉化規則文件偏移是相對于PE文件開始處0字節的偏移,相對虛擬地址RVA則是相對于映像基址的偏移。因此,虛擬內存地址VA、映像基址ImageBase、相對虛擬內存地址RVA三者之間有如下關系。VA=ImageBase+RVA3.PE文件(3)地址映射:3)地址映射的計算文件偏移地址(FOA)與虛擬地址(VA)的轉化規則因為有:某數據在PE文件中的偏移地址-該數據所在節的起始文件偏移地址=某數據的RVA-該數據所在節的起始RVA所以有:某數據在PE文件中的偏移地址=某數據的RVA-(該數據所在節的起始RVA-該數據所在節的起始文件偏移地址)其中的關鍵是計算節偏移:該數據所在節的起始RVA-該數據所在節的起始文件偏移地址=節偏移最終有:某數據在PE文件中的偏移地址=某數據的RVA-節偏移3.PE文件(4)導入函數地址表和導入表:1)導入函數地址表(ImportAddressTable,IAT)3.PE文件(4)導入函數地址表和導入表:2)導入函數目錄表(ImportDirectoryTable,IT)緊跟IAT后的是導入函數目錄表,簡稱導入表IT。導入表是一個IMAGE_IMPORT_DESCRIPTOR結構體數組,其中記錄著PE文件要導入的庫文件及函數的信息。3.PE文件由PE文件頭中的數據目錄表找到導入表起始偏移地址位置的過程4.程序的逆向分析(1)逆向工程:1)逆向分析工程的概念逆向分析工程,簡稱逆向工程(ReverseEngineering),源于商業及軍事領域中的硬件分析。其主要目的是,在不能輕易獲得必要的生產信息下,直接從對成品的分析,推導出產品的設計原理。逆向工程則是按照與系統工程的相反方向,將其由系統到要素、由大至小一件件地拆卸開,分析各要素、各部件的結構原因、生成原理及成型過程中的成功思路,再結合自己的實際,對其進行必要的調整和改進,進而形成新的系統。逆向工程從應用范圍來看,可以分成硬件和軟件兩大部分。4.程序的逆向分析(1)逆向工程:2)軟件逆向工程的概念軟件逆向工程的定義軟件逆向分析工程,簡稱逆向工程(本書談及的逆向工程均是指軟件逆向分析工程),是一系列對運行于機器上的低級代碼進行等價的提升和抽象,最終得到更加容易被人所理解的表現形式的過程。4.程序的逆向分析逆向工程的作用對于軟件設計與開發人員,為了保護自身開發軟件的知識產權,—般不會將源程序公開,然而,他們又往往通過對感興趣的軟件進行逆向工程,來了解和學習這些軟件的設計理念及開發技巧,以幫助自己在軟件市場競爭中取得優勢。對于惡意軟件開發者或網絡攻擊者,他們使用逆向分析方法對加密保護技術、數字版權保護技術進行跟蹤分析,進而實施破解。他們還常常利用逆向工程技術挖掘操作系統和應用軟件的漏洞,進而開發或使用漏洞利用程序,獲取應用軟件關鍵信息的訪問權,甚至完全控制整個系統。對于軟件開發人員尤其是信息安全人員,可以使用逆向分析技術對二進制代碼審核,跟蹤分析程序執行的每個步驟,主動挖掘軟件中的漏洞;也可以進一步對代碼實現的質量和魯棒性進行評估,這為無法通過查閱軟件源代碼評估代碼的質量和可靠性提供了新途徑;還可以對惡意程序進行解剖和分析,為清除惡意程序提供幫助。4.程序的逆向分析(1)逆向工程:2)軟件逆向工程的概念逆向工程的正確應用合理利用逆向工程技術,將有利于打破一些軟件企業對軟件技術的壟斷,有利于中小軟件企業開發出更多具有兼容性的軟件,從而促進軟件產業的健康發展。技術從來都是一把雙刃劍,逆向工程技術也已成為剽竊軟件設計思想,侵犯軟件著作權的利器。許多國家,包括中國的相關法律部門都認為:只要反編譯并非以復制軟件為目的,在實施反編譯行為的過程中所涉及的復制只是一種中間過渡性的復制,反編譯最終所達到的目的是使公眾可以獲得包含在軟件中不受著作權保護的成分,這樣的反編譯并不會被認為是侵權。4.程序的逆向分析(1)逆向工程:3)軟件逆向分析的方法動態逆向分析方法將目標代碼變換為易讀形式的逆向分析過程,但是,這里不是僅僅靜態閱讀變換之后的程序,而是在一個調試器或調試工具中加載程序,然后一邊運行程序一邊對程序的行為進行觀察和分析。這些調試器或調試工具包括:一些集成開發環境(IntegratedDevelopmentEnvironment,IDE)提供的調試工具、操作系統提供的調試器以及軟件廠商開發的調試工具。4.程序的逆向分析(1)逆向工程:3)軟件逆向分析的方法靜態逆向分析方法是指不執行代碼而是使用反編譯、反匯編工具,把程序的二進制代碼翻譯成匯編語言,之后,分析者可以手工分析,也可以借助工具自動化分析。靜態分析方法能夠精確地描繪程序的輪廓,從而可以輕易地定位自己感興趣的部分來重點分析。靜態逆向分析的常用工具有IDAPro、C32Asm、Win32Dasm、VBDecompilerpro等。4.程序的逆向分析(1)逆向工程:3)軟件逆向分析的方法動靜結合的逆向分析方法基于靜態和動態逆向分析的優點與不足,人們經常采用動靜結合的逆向分析。通過靜態分析達到對代碼整體的掌握,通過動態分析觀察程序內部的數據流信息。動態和靜態分析需要相互配合,彼此為對方提供數據以幫助對方更好地完成分析工作。動靜結合的逆向分析能夠很好地達到軟件逆向分析的要求,但也存在著結構復雜、難以實現等不足之處。4.程序的逆向分析(1)逆向工程:4)軟件逆向分析的一般過程軟件逆向分析的一般過程涉及文件裝載、指令解碼、語義映射、相關圖構造、過程分析、類型分析、結果輸出7個階段。4.程序的逆向分析(2)逆向工程相關工具及應用:程序的虛擬分析環境搭建編譯器調試功能動態調試工具OllyDbg反匯編靜態分析工具IDA文本及數據分析工具UltraEdit5.應用案例【案例11-1】構造一個PE格式的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CSPSTC 13-2018禽類產品追溯體系應用指南
- T/CSIQ 8011-2018晶硅光伏組件技術規范
- T/CQAP 3010-2023大興安嶺地產中藥材北蒼術質量規范
- T/CHTS 20041-2024樹脂基復合材料交通標志底板及支撐件
- T/CGMA 033002-2020壓縮空氣站節能設計指南
- T/CEMIA 037-2023厚膜集成電路用銀鈀導體漿料規范
- T/CECS 10326-2023智慧社區大數據平臺技術要求
- T/CECS 10039-2019綠色建材評價墻面涂料
- T/CECA-G 0237-2023空氣源熱泵與燃氣設備耦合供熱系統技術規范
- T/CCMA 0085-2019市政與環衛車輛作業標志燈
- 2025年貴州省貴陽市衛生健康系統事業單位招聘384人歷年高頻重點提升(共500題)附帶答案詳解
- DB3307T 128-2023 共富工坊建設與星級評價規范
- 孩子心理成長中家長角色的科學定位
- 小學生反詐騙班會課件
- 康養休閑旅游服務基礎知識單選題及答案解析
- 解剖學公開課課件內分泌
- 銀屑病臨床病例討論
- 【MOOC】工程經濟學原理-東南大學 中國大學慕課MOOC答案
- 涉密人員審查備案登記表
- 高層建筑汽車吊吊裝作業方案
- 24秋新人教版地理七年級上冊大單元整體設計-第四章 天氣與氣候課件
評論
0/150
提交評論