代碼虛擬與自動化分析( 簡體 字) | |
作者:章立春 | 類別:1. -> 程式設計 -> 綜合 |
出版社:電子工業出版社 | 3dWoo書號: 47837 詢問書籍請說出此書號! 有庫存 NT售價: 395 元 |
出版日:9/1/2017 | |
頁數:332 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121320767 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1部分 實現原理
第1章 代碼虛擬化原理 2 1.1 代碼虛擬機運行時框架 3 1.1.1 流程控制指令 6 1.1.2 入口代碼 6 1.1.3 解碼執行器 7 1.1.4 出口代碼 8 1.2 代碼虛擬機非運行時部件 8 1.2.1 譯碼器 9 1.2.2 虛擬化媒介編碼器 10 1.2.3 運行時部件 10 1.2.4 運行時部件生成器 10 1.2.5 原始程序處理器 11 1.3 本章小結 11 第2章 模擬虛擬化 12 2.1 Bochs簡單分析 12 2.1.1 模擬CPU對象 13 2.1.2 譯碼器 15 2.1.3 解碼執行器 16 2.1.4 OP代碼分支 17 2.2 模擬虛擬化特征 19 2.3 實現模擬虛擬化樣機 19 2.3.1 模擬目標設定 19 2.3.2 技術方案 20 2.3.3 原程序處理器 21 2.3.4 運行時部件 24 2.4 本章小結 28 第3章 自動化分析原理 29 3.1 代碼等價替換 29 3.2 垃圾指令生成 32 3.3 代碼亂序 33 3.4 多分支跳轉 34 3.5 自動化分析基礎 34 3.5.1 代碼等價替換技術 35 3.5.2 垃圾指令生成及清除 35 3.5.3 代碼亂序處理 35 3.5.4 多分支跳轉及清除 36 3.5.5 代碼虛擬機技術 36 第4章 花型替換分析 37 4.1 定義花型 38 4.2 匹配花型 40 4.3 實施花型替換 42 4.4 打造花型替換機 42 4.4.1 功能制定 43 4.4.2 確定技術方案 43 4.4.3 開發籌備 44 4.4.4 具體實現 44 4.4.5 效果演示 70 第2部分 技術分析 第5章 打造自動化分析工具 74 5.1 功能制定 74 5.2 確定技術方案 75 5.3 開發籌備 76 5.4 具體實現 77 5.4.1 實時代碼虛擬機 77 5.4.2 代碼執行記錄 89 5.4.3 C語言腳本即時編譯 95 5.4.4 代碼實時監控執行 103 5.4.5 高級調試功能 106 5.4.6 調試界面改造 106 5.4.7 斷點增強 112 5.4.8 代碼回溯 113 5.4.9 預執行 114 5.4.10 實時代碼塊記錄 114 5.4.11 腳本化增強調試 117 5.4.12 代碼DNA功能 123 5.5 效果演示 127 第6章 代碼虛擬機結構分析 129 6.1 虛擬機類型鑒別 129 6.2 OP分支跳轉 132 6.3 OP分支探測 134 6.4 虛擬機棧 145 6.5 虛擬機Context 149 6.6 OPCODE編碼 152 6.7 虛擬機出口 156 6.8 本章小結 162 第7章 OP分支功能性分析 163 7.1 統計分析法 163 7.2 棧平衡簡化分析法 165 7.3 不精確花型替換分析法 170 7.4 內存狀態著色分析法 173 7.5 內存訪問定位分析法 184 7.6 本章小結 187 第8章 對比測試分析 188 8.1 一般代碼對比分析法 188 8.2 OP分支執行對比分析法 194 8.3 內存訪問記錄對比分析法 201 8.4 嚴格現場對比分析法 202 8.5 本章小結 205 第9章 實時監控分析 206 9.1 一般代碼實時監控分析法 206 9.2 Context實時監控分析法 211 9.3 內存狀態實時同步監控分析法 216 9.4 塊執行實時監控分析法 225 9.5 本章小結 230 第10章 OP實時調試分析 231 10.1 虛擬OP實時調試 231 10.2 直接OP實時調試 234 10.3 OP實時調試演示 237 10.4 本章小結 241 第3部分 實例分析 第11章 Winlicense 2.3.2分析 244 11.1 加密流程分析 245 11.1.1 Winlicense主體框架 245 11.1.2 Shell代碼生成 249 11.2 Winlicense加密技術 252 11.3 代碼變形分析 256 11.4 代碼虛擬機分析 260 11.4.1 代碼虛擬機生成 260 11.4.2 FISH代碼虛擬機 267 11.4.3 TIGER代碼虛擬機 272 11.4.4 PUMA代碼虛擬機 274 11.4.5 SHARK代碼虛擬機 276 11.4.6 小結 278 11.5 OPCODE補丁 278 11.6 代碼還原 282 11.7 本章小結 286 第12章 VMProtect分析 287 12.1 代碼變形分析 287 12.2 OP分支DNA 289 12.3 OPCODE補丁 291 12.4 代碼還原 302 12.5 本章小結 305 第13章 xVMDebug插件 306 13.1 xVMDebug介紹 306 13.2 運行環境 306 13.3 文件結構 306 13.4 插件安裝 306 13.5 主要功能簡介 307 13.5.1 調試功能 307 13.5.2 腳本功能 309 13.5.3 函數監視功能 310 13.5.4 偽調試功能 311 13.5.5 遠端IDA功能 311 13.5.6 模塊注入功能 312 13.6 操作說明 313 13.6.1 選項設置窗口 313 13.6.2 增強界面窗口 315 13.6.3 塊執行管理窗口 318 13.6.4 CALL記錄窗口 320 13.6.5 ASM窗口菜單 322 13.6.6 DUMP窗口菜單 322 本書主要分成3個部分討論代碼虛擬和自動化分析技術。第1部分主要討論代碼虛擬化技術的各種實現方法,并通過一些現有的代碼虛擬化技術應用案例引領讀者了解代碼虛擬化的技術基礎。第2部分主要介紹和討論代碼自動化分析技術,也就是對在第1部分中介紹的代碼虛擬化技術進行討論,利用虛擬化技術自身進行自動化分析,通過實際的代碼將自動化分析技術從理論變為實際的程序,提升讀者對自動化分析技術的理解和運用水平。第3部分使用自動化分析技術全面分析Winlicense和VMProtect保護系統,展示自動化分析技術,并通過實際的分析過程帶領讀者深入體會代碼虛擬化技術。本書適合信息安全領域相關人員、高校相關專業學生及愛好者閱讀。
在完成了《軟件保護及分析技術——原理與實踐》一書以后,回顧該書的內容,發現基于該書的定位和目標,無法涉及更多軟件安全領域的高階技術,因此有了本書。
在現代軟件安全技術中,代碼加密技術,尤其是代碼虛擬加密技術,已經成為最為主要的,同時也是最為有效的軟件保護手段之一。盡管代碼虛擬化技術不斷成熟,但目前沒有足夠的相關文檔和信息被公開,這使代碼虛擬化技術成為一種封閉的“黑箱技術”,只有少部分人才能了解并運用它。 寫作目的 虛擬化技術在現代計算機技術中占據著越來越重要的位置。在現代計算機系統中,從硬件到軟件,從上層應用到系統底層,都需要虛擬化技術。 什么是虛擬化?虛擬化是一個泛指,在計算機中是指將某種邏輯行為發生的環境進行更換,使這種邏輯行為在不同環境中的發生和運行都能得到相同的邏輯結果的技術。傳統的計算機虛擬化技術都是為了使程序在更加安全、穩定的環境中更加快捷、方便地完成特定的邏輯處理或者程序功能而設計的,但在計算機技術飛速發展的今天,很多事物都發生了質的變化,在虛擬化技術中同樣如此。于是,在現代的虛擬化技術中出現了一個重要的分支——代碼虛擬化。 從廣義上說,代碼虛擬的目的也是使軟件的邏輯行為運行在一個更加安全的環境中,但與其他虛擬化技術不同的是,代碼虛擬化的安全目標是針對人而非計算機環境的,也就是說,代碼虛擬機的實質并不是從技術上使程序的實際代碼運行更加穩定或者更加安全,而是使代碼的運行過程更為復雜,從而使他人難以理解代碼自身的邏輯行為,防止代碼運行流程被篡改或逆向。代碼虛擬化技術的這種特征,使其超出了一般的技術范疇,成為一種在人與人之間借助軟件安全進行博弈游戲的載體。 徹底理解代碼虛擬化技術要從虛擬化和反虛擬化兩個方面進行。在現代的代碼虛擬化技術中,傳統的反虛擬化技術的發展遠遠落后于虛擬化技術,而且遇到了難以跨越的障礙。這是因為隨著計算機運算速度的加快,虛擬化技術可以使用大量的計算機運算來實現代碼的虛擬化,大大膨脹和擴張虛擬化代碼量,使代碼的運行量達到一種難以人為進行分析的地步,從而使人工分析代碼的邏輯和行為變得不切實際。 針對這種情況,自動化分析技術應運而生。既然代碼虛擬可以利用計算機強大的運算能力,那么自動化分析技術也可以運用計算機的運算能力來幫助我們更加方便地理解這些代碼。更富戲劇性的是,在自動化分析方面,我們使用較多也較為有效的技術恰恰是代碼虛擬化技術,這就形成了利用虛擬化技術理解分析虛擬化技術的奇妙關系。在本書中,筆者將與讀者一起感受這個代碼中的虛擬世界。 本書內容 本書主要分成3部分來討論代碼虛擬和自動化分析技術。第1部分主要討論代碼虛擬的各種實現方法,并通過一些代碼虛擬化技術的應用案例引領讀者了解代碼虛擬化的技術基礎。第2部分主要介紹和討論代碼自動化分析技術,也就是針對我們了解的各種代碼虛擬化技術,對如何對其進行理解和利用進行自動化分析,并通過實際的代碼將自動化分析技術從理論變為實際程序,提升我們對自動化分析技術的理解和運用水平。第3部分使用自動化分析技術分析Winlicense與VMProtect保護系統,全面展示自動化分析技術,并通過這種實際的分析過程深入體會代碼虛擬化技術。 章立春 2017年2月 |