軟體加密與解密

來源:互聯網
上載者:User

《軟體加密與解密》

基本資料
原書名: Surreptitious Software:Obfuscation, Watermarking,and Tamperproofing for Software Protection
原出版社: Pearson Education
作者: (美)Christian Collberg Jasvir Nagra [作譯者介紹]
譯者: 崔孝晨
叢書名: 圖靈程式設計叢書
出版社:人民郵電出版社
ISBN:9787115270757
上架時間:2012-5-8
出版日期:2012 年5月
開本:16開
頁碼:601
版次:1-1
所屬分類: 電腦 > 安全 > 加密與解密

 


更多詳細 》》》軟體加密與解密
內容簡介
電腦書籍
 
 《軟體加密與解密》介紹了如何利用混淆、浮水印和防篡改等技術,來保護軟體免受盜版、篡改和惡意逆向工程的危害,主要內容包括攻擊者和防禦者用來剖析器
的各種主流方法,如何使用代碼混淆技術使程式更難以被分析和理解,如何在軟體中添加浮水印和指紋以標識軟體的開發人員和購買使用者,等等。
  《軟體加密與解密》適合各層次軟體開發人員閱讀。
目錄
第1章 什麼是隱蔽軟體 1
1.1 概述 1
1.2 攻擊和防禦 5
1.3 程式分析的方法 6
1.4 代碼混淆 11
1.4.1 代碼混淆的應用 13
1.4.2 混淆技術概述 17
1.4.3 被駭客們使用的代碼混淆技術 21
1.5 防篡改技術 27
1.5.1 防篡改技術的應用 27
1.5.2 防篡改技術的例子 29
1.6 軟體浮水印 30
1.6.1 軟體浮水印的例子 32
1.6.2 攻擊浮水印系統 34
1.7 軟體相似性比對 36
1.7.1 代碼剽竊 36
1.7.2 軟體作者鑒別 37
1.7.3 軟體“胎記” 38
1.7.4 軟體“胎記”的案例 40

.1.8 基於硬體的保護技術 41
1.8.1 把硬體加密鎖和軟體一起發售 42
1.8.2 把程式和cpu綁定在一起 43
1.8.3 確保軟體在安全的環境中執行 43
1.8.4 加密可執行檔 44
1.8.5 增添物理防護 45
1.9 小結 46
1.9.1 使用軟體保護技術的理由 46
1.9.2 不使用軟體保護技術的理由 47
1.9.3 那我該怎麼辦呢 47
1.10 一些說明 48
第2章 攻擊與防禦的方法 49
2.1 攻擊的策略 50
2.1.1 被破解對象的原型 50
2.1.2 破解者的動機 52
2.1.3 破解是如何進行的 54
2.1.4 破解者會用到的破解方法 55
2.1.5 破解者都使用哪些工具 58
2.1.6 破解者都會使用哪些技術 59
2.1.7 小結 69
2.2 防禦方法 70
2.2.1 一點說明 71
2.2.2 遮掩 73
2.2.3 複製 75
2.2.4 分散與合并 78
2.2.5 重新排序 80
2.2.6 映射 81
2.2.7 指引 84
2.2.8 模仿 85
2.2.9 示形 87
2.2.10 條件—觸發 88
2.2.11 運動 90
2.2.12 小結 91
2.3 結論 92
2.3.1 對攻擊/防禦模型有什麼要求 92
2.3.2 該如何使用上述模型設計演算法 93
第3章 剖析器的方法 94
3.1 靜態分析 95
3.1.1 控制流程分析 95
3.1.2 資料流分析 103
3.1.3 資料依賴分析 107
3.1.4 別名分析 109
3.1.5 切片 115
3.1.6 抽象解析 116
3.2 動態分析 118
3.2.1 調試 118
3.2.2 剖分 129
3.2.3 trace 132
3.2.4 模擬器 135
3.3 重構源碼 137
3.3.1 反組譯碼 139
3.3.2 反編譯 146
3.4 實用性分析 155
3.4.1 編程風格度量 156
3.4.2 軟體複雜性度量 158
3.4.3 軟體可視化 159
3.5 小結 162
第4章 代碼混淆 163
4.1 保留語義的混淆轉換 164
4.1.1 演算法obfcf:多樣化轉換 164
4.1.2 演算法obftp:標識符重新命名 170
4.1.3 混淆的管理層 173
4.2 定義 177
4.2.1 可以實用的混淆轉換 178
4.2.2 混淆引發的開銷 181
4.2.3 隱蔽性 181
4.2.4 其他定義 182
4.3 複雜化控制流程 183
4.3.1 不透明運算式 183
4.3.2 演算法obfwhkd:壓扁控制流程 184
4.3.3 使用別名 186
4.3.4 演算法obfctjbogus:插入多餘的控制流程 191
4.3.5 演算法obfldk:通過跳轉函數執行無條件轉移指令 195
4.3.6 攻擊 198
4.4 不透明謂詞 201
4.4.1 演算法obfctjpointer:從指標別名中產生不透明謂詞 202
4.4.2 演算法obfwhkdopaque:數組別名分析中的不透明值 204
4.4.3 演算法obfctjthread:從並發中產生的不透明謂詞 205
4.4.4 攻擊不透明謂詞 207
4.5 資料編碼 211
4.5.1 編碼整型數 213
4.5.2 混淆布爾型變數 217
4.5.3 混淆常量資料 220
4.5.4 混淆數組 222
4.6 結構混淆 226
4.6.1 演算法obfwcsig:合并函數簽名 226
4.6.2 演算法obfctjclass:分解和合并類 229
4.6.3 演算法obfdmrvsl:摧毀進階結構 232
4.6.4 演算法obfajv:修改指令編碼方式 239
4.7 小結 243
第5章 混淆理論 245
5.1 定義 248
5.2 可被證明是安全的混淆:我們能做到嗎 249
5.2.1 圖靈停機問題 250
5.2.2 演算法reaa:對程式進行反混淆 252
5.3 可被證明是安全的混淆:有時我們能做到 254
5.3.1 演算法obflbs:混淆點函數 254
5.3.2 演算法obfns:對資料庫進行混淆 261
5.3.3 演算法obfpp:同態加密 263
5.3.4 演算法obfcejo:白盒des加密 267
5.4 可被證明是安全的混淆:(有時是)不可能完成的任務 272
5.4.1 通用混淆器 273
5.4.2 混淆最簡單的程式 276
5.4.3 對混淆所有程式的不可能性的證明 277
5.4.4 小結 278
5.5 可被證明為安全的混淆:這玩兒還能成嗎 279
5.5.1 跳出不可能性的陰霾 280
5.5.2 重新審視定義:構造互動混淆方法 281
5.5.3 重新審視定義:如果混淆不保留語義又當如何 283
5.6 小結 286
第6章 動態混淆 288
6.1 定義 290
6.2 代碼遷徙 292
6.2.1 演算法obfkmnm:替換指令 293
6.2.2 演算法obfagswap:自修改狀態機器 296
6.2.3 演算法obfmamdsb:動態代碼合并 307
6.3 加密技術 311
6.3.1 演算法obfcksp:把代碼作為產生密鑰的源泉 312
6.3.2 演算法obfagcrypt:結合自修改代碼和加密 318
6.4 小結 324
第7章 軟體防篡改 325
7.1 定義 327
7.1.1 對篡改的監測 328
7.1.2 對篡改的響應 331
7.1.3 系統設計 332
7.2 自監測 333
7.2.1 演算法tpca:防護代碼之網 335
7.2.2 產生hash函數 338
7.2.3 演算法tphmst:隱藏hash值 342
7.2.4 skype中使用的軟體保護技術 349
7.2.5 演算法rewos:攻擊自hash演算法 352
7.2.6 講評 356
7.3 演算法retcj:響應機制 357
7.4 狀態自檢 360
7.4.1 演算法tpcvcpsj:易遭忽視的hash函數 362
7.4.2 演算法tpjjv:重疊的指令 365
7.5 遠程防篡改 368
7.5.1 分布式監測和響應機制 368
7.5.2 解決方案 369
7.5.3 演算法tpzg:拆分函數 369
7.5.4 演算法tpslspdk:通過確保遠程機器硬體設定來防篡改 372
7.5.5 演算法tpcns:對代碼進行持續的改變 375
7.6 小結 376
第8章 軟體浮水印 378
8.1 曆史和應用 378
8.1.1 應用 379
8.1.2 在音頻中嵌入浮水印 382
8.1.3 在圖片中嵌入浮水印 383
8.1.4 在自然語言文本中嵌入浮水印 384
8.2 軟體浮水印 387
8.3 定義 388
8.3.1 浮水印的可靠性 389
8.3.2 攻擊 391
8.3.3 浮水印與指紋 392
8.4 使用重新排序的方法嵌入浮水印 392
8.4.1 演算法wmdm:重新排列基本塊 394
8.4.2 重新分配資源 396
8.4.3 演算法wmqp:提高可靠性 397
8.5 防篡改浮水印 400
8.6 提高水位線的抗幹擾能力 403
8.7 提高隱蔽性 408
8.7.1 演算法wmmimit:替換指令 409
8.7.2 演算法wmvvs:在控制流程圖中嵌入浮水印 409
8.7.3 演算法wmcc:抽象解析 416
8.8 用於隱寫術的浮水印 421
8.9 把浮水印值分成幾個片段 425
8.9.1 把大浮水印分解成幾個小片段 426
8.9.2 相互冗餘的浮水印片段 427
8.9.3 使用稀疏編碼提高水位線的可靠性 432
8.10 圖的編/解碼器 432
8.10.1 父指標導向樹 433
8.10.2 底數圖 433
8.10.3 排序圖 434
8.10.4 根延伸的平面三叉樹枚舉編碼 434
8.10.5 可歸約排序圖 435
8.11 講評 436
8.11.1 嵌入技術 437
8.11.2 攻擊模型 438
第9章 動態浮水印 439
9.1 演算法wmct:利用別名 443
9.1.1 一個簡單的例子 443
9.1.2 浮水印識別中的問題 445
9.1.3 增加資料嵌入率 447
9.1.4 增加抵禦攻擊的抗幹擾效能 452
9.1.5 增加隱蔽性 455
9.1.6 講評 458
9.2 演算法wmnt:利用並發 459
9.2.1 嵌入浮水印的基礎構件 462
9.2.2 嵌入樣本 467
9.2.3 識別 469
9.2.4 避免模式比對攻擊 470
9.2.5 對構件進行防篡改處理 471
9.2.6 講評 473
9.3 演算法wmccdkhlspaths:擴充執行路徑 474
9.3.1 浮水印的表示和嵌入 474
9.3.2 識別 479
9.3.3 講評 480
9.4 演算法wmccdkhlsbf:防篡改的執行路徑 481
9.4.1 嵌入 481
9.4.2 識別 484
9.4.3 對跳轉函數進行防篡改加固 484
9.4.4 講評 485
9.5 小結 486
第10章 軟體相似性分析 489
10.1 應用 490
10.1.1 重複代碼篩選 490
10.1.2 軟體作者鑒別 492
10.1.3 剽竊檢測 495
10.1.4 胎記檢測 496
10.2 定義 497
10.3 基於k-gram的分析 501
10.3.1 演算法ssswawinnow:有選擇地記錄k-gram hash 501
10.3.2 演算法ssswamoss:軟體剽竊檢測 504
10.3.3 演算法ssmckgram:java 位元組碼的k-gram“胎記” 507
10.4 基於api的分析 509
10.4.1 演算法sstnmm:物件導向的“胎記” 510
10.4.2 演算法sstonmm:動態函數調用“胎記” 512
10.4.3 演算法sssdl:動態k-gram api“胎記” 513
10.5 基於樹的分析 514
10.6 基於圖的分析 518
10.6.1 演算法sskh:基於pdg的重複代碼篩選 518
10.6.2 演算法sslchy:基於pdg的剽竊檢測 521
10.6.3 演算法ssmcwpp:整個程式的動態“胎記” 522
10.7 基於軟體度量的分析方法 525
10.7.1 演算法sskk:基於軟體度量的重複代碼篩選 525
10.7.2 演算法sslm:基於度量的軟體作者鑒別 527
10.8 小結 532
第11章 用硬體保護軟體 534
11.1 使用發行的物理裝置反盜版 535
11.1.1 對發行碟片的保護 536
11.1.2 軟體狗和加密鎖 541
11.2 通過可信平台模組完成認證啟動 545
11.2.1 可信啟動 546
11.2.2 產生評估結果 548
11.2.3 tpm 550
11.2.4 盤問式驗證過程 551
11.2.5 社會可信性和隱私問題 553
11.2.6 應用和爭議 555
11.3 加密的可執行檔 556
11.3.1 xom體繫結構 557
11.3.2 阻止重放攻擊 560
11.3.3 修補有漏洞的地址匯流排 561
11.3.4 修補有漏洞的資料匯流排 564
11.3.5 講評 565
11.4 攻擊防篡改裝置 565
11.4.1 監聽匯流排——破解微軟的xbox 566
11.4.2 猜測指令——破解達拉斯半導體公司的ds5002fp微處理器 567
11.4.3 破解智慧卡 570
11.4.4 非侵入式攻擊 573
11.4.5 主板級的保護 574
11.5 小結 576
參考文獻 578
本圖書來源於:中國互動出版網

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.