基本介紹
- 書名:軟體保護及分析技術:原理與實踐
- 作者:章立春
- ISBN:978-7-121-29264-4
- 頁數:412頁
- 定價:79.00元
- 出版社:電子工業出版社
- 出版時間:2013年8月
基本信息,內容簡介,目錄信息,
基本信息
軟體保護及分析技術——原理與實踐
叢書名 :安全技術大系
作 譯 者:章立春
出版時間:2016-07
千 字 數:612
版 次:01-01
頁 數:412
開 本:16開
I S B N :9787121292644
內容簡介
本書對軟體安全領域的保護與分析技術進行了全面的討論和剖析,通過保護與分析的對比講解,結合代碼和操作流程,對軟體安全領域的各種技術進行了詳盡的討論,並將理論與實踐相結合,利用具體的程式代碼進行演示。同時,對現今較為成熟的保護系統進行了分析,全面介紹了軟體安全領域的保護與分析技術。最後,結合多年從事軟體軟體保護與分析的經驗,講解了軟體保護與分析中的各種經驗和技巧。
目錄信息
第0章 準備知識 1
0.1 Win32程式 1
0.2 PE程式檔案 3
0.3 Win32進程的啟動 5
0.4 PE程式的載入 7
第1部分 軟體保護
第1章 軟體保護技術 11
1.1 反調試 11
1.1.1 函式檢測 12
1.1.2 數據檢測 12
1.1.3 符號檢測 13
1.1.4 視窗檢測 13
1.1.5 特徵碼檢測 14
1.1.6 行為檢測 14
1.1.7 斷點檢測 15
1.1.8 功能破壞 16
1.1.9 行為占用 16
1.2 反虛擬機 17
1.3 數據校驗 18
1.4 導入表加密 19
1.5 模組拷貝移位 27
1.6 資源加密 29
1.7 代碼加密 30
1.7.1 代碼變形 30
1.7.2 花指令 33
1.7.3 代碼亂序 33
1.7.4 多分支 35
1.7.5 call鏈 36
1.8 代碼虛擬化 37
1.8.1 堆機 39
1.8.2 棧機 40
1.8.3 狀態機 42
1.9 腳本引擎 42
1.10 網路加密 42
1.11 硬體加密 42
1.12 代碼簽名 43
第2章 軟體保護系統 44
2.1 保護功能 44
2.1.1 試用控制 44
2.1.2 授權控制 45
2.1.3 功能擴展 45
2.2 保護系統 45
2.2.1 WinLicense和Themida 46
2.2.2 VMProtect 47
第3章 軟體保護強化 48
3.1 設計最佳化 49
3.1.1 技巧1:代碼習慣最佳化 49
3.1.2 技巧2:SDK使用最佳化 51
3.1.3 技巧3:驗證保護系統 52
3.2 加殼最佳化 52
3.2.1 技巧1:側重選擇代碼加密 53
3.2.2 技巧2:精選被保護代碼 54
3.2.3 技巧3:充分測試 55
第2部分 軟體破解
第4章 軟體破解工具 58
4.1 調試分析工具 58
4.1.1 OllyDbg 58
4.1.2 WinDBG 59
4.1.3 IDA 60
4.2 修改工具 60
4.2.1 LordPE 60
4.2.2 010Editor 61
4.3 自動化工具 61
第5章 軟體破解技術 62
5.1 靜態分析 63
5.1.1 基本信息分析 63
5.1.2 代碼靜態分析 67
5.2 軟體調試 68
5.2.1 一般調試原理 68
5.2.2 偽調試技術 72
5.2.3 本地調試 73
5.2.4 遠程調試 74
5.2.5 虛擬機調試 76
5.3 反反調試 77
5.4 HOOK 78
5.4.1 代碼HOOK 79
5.4.2 函式HOOK 86
5.4.3 模組HOOK 86
5.4.4 導出表HOOK 92
5.5 代碼注入 94
5.6 補丁 101
5.6.1 冷補丁 101
5.6.2 熱補丁 102
5.6.3 SMC 102
5.6.4 虛擬化補丁 103
5.7 模組重定位 103
5.8 沙箱技術 104
5.9 虛擬化 106
5.10 代碼虛擬機 107
5.10.1 OP分支探測 108
5.10.2 OP調試 113
5.11 自動化技術 114
5.11.1 代碼追蹤 114
5.11.2 預執行 118
5.11.3 代碼簡化 120
5.11.4 代碼重建 124
5.11.5 塊執行 125
5.11.6 多分支剔除 126
5.11.7 小結 129
5.12 動態分析 129
5.12.1 著色 129
5.12.2 黑盒測試 132
5.13 功能模擬 132
5.13.1 授權模擬 132
5.13.2 網路模擬 134
5.13.3 加密狗模擬 134
5.14 脫殼 134
5.14.1 導入表重建 135
5.14.2 資源重建 149
5.14.3 區段重建 152
5.14.4 OEP定位 154
5.14.5 PE頭修復 159
5.14.6 重定位修復 159
5.14.7 PE重建 163
5.14.8 補區段 164
5.15 進程快照技術 166
5.15.1 進程快照技術概述 166
5.15.2 快照脫殼 178
5.16 代碼回溯技術 180
第6章 軟體分析技巧 184
6.1 技巧1:精確代碼範圍 184
6.2 技巧2:多用對比參考 186
6.3 技巧3:逆向思考 187
6.4 技巧4:多利用自動化優勢 187
6.5 技巧5:利用環境優勢 187
6.6 技巧6:儘量避免算法分析 187
6.7 技巧7:夠用原則 188
第3部分 自己動手
第7章 打造函式監視器 190
7.1 制定功能 190
7.2 確定技術方案 191
7.3 開發籌備 192
7.4 具體實現 193
7.4.1 啟動目標進程並注入xVMRuntime模組 196
7.4.2 通信協定 199
7.4.3 事件設定 201
7.4.4 輔助調試功能 216
7.4.5 技術問題 217
7.5 效果演示 217
第8章 打造資源重建工具 220
8.1 制定功能 220
8.2 確定技術方案 220
8.3 開發籌備 222
8.4 具體實現 222
8.4.1 數據結構及通信協定 222
8.4.2 獲取記憶體段資源數據 223
8.4.3 監控資源函式獲取數據 225
8.4.4 強制搜尋記憶體窮舉獲取數據 227
8.4.5 重建資源區段 230
8.4.6 技術問題 234
8.5 效果演示 235
第9章 打造重定位修復工具 238
9.1 制定功能 238
9.2 確定技術方案 238
9.3 開發籌備 239
9.4 具體實現 239
9.4.1 通信協定 239
9.4.2 注入模組 240
9.4.3 抓取記憶體快照 240
9.4.4 對比記憶體數據 244
9.4.5 重建重定位區段 245
9.5 效果演示 248
9.5.1 DLL模組重定位修復 249
9.5.2 主模組重定位修復 251
第10章 打造進程拍照機 253
10.1 制定功能 253
10.2 確定技術方案 253
10.3 開發籌備 255
10.4 具體實現 255
10.4.1 先期模組注入 255
10.4.2 接管進程記憶體管理 261
10.4.3 建立函式調用中間層 268
10.4.4 實現場景載入功能 269
10.4.5 轉儲並修正映像及相關數據 270
10.4.6 增加TIB轉儲 274
10.5 效果演示 276
10.5.1 WinLicense測試 276
10.5.2 VMProtect測試 279
第11章 打造函式通用追蹤器 281
11.1 制定功能 281
11.2 確定技術方案 281
11.3 開發籌備 282
11.4 具體實現 283
11.4.1 建立外掛程式框架 283
11.4.2 分層式虛擬機 284
11.4.3 調用代碼查找識別 287
11.5 追蹤函式 294
11.6 重建導入表 299
11.7 修復調用代碼 304
11.7.1 記憶體式修復 305
11.7.2 檔案式修復 307
11.8 效果演示 309
第12章 打造預執行調試器 312
12.1 制定功能 312
12.2 確定技術方案 312
12.3 開發籌備 313
12.4 具體實現 313
12.4.1 預執行功能 313
12.4.2 代碼追蹤記錄功能 317
12.4.3 塊執行功能 321
12.4.4 OP記錄調試功能 327
12.5 效果演示 331
第13章 打造偽調試器 335
13.1 制定功能 335
13.2 確定技術方案 335
13.3 開發籌備 336
13.4 具體實現 336
13.4.1 數據結構與通信協定 337
13.4.2 第1步:界面相關工作 338
13.4.3 第2步:在調試端啟用和禁用偽調試技術 339
13.4.4 第3步:創建調試目標 341
13.4.5 第4步:等待調試事件主循環 344
13.4.6 第5步:被調試端的初始化 346
13.4.7 第6步:中轉異常 349
13.4.8 第7步:輔助調試函式實現 350
13.4.9 小結 354
13.5 效果演示 354
第4部分 實例分析
第14章 VMProtect虛擬機分析 358
第15章 WinLicense虛擬機分析 375
第5部分 脫殼實例
第16章 VMProtect脫殼 382
第17章 WinLicense脫殼 394
寫在最後 405