編譯與反編譯技術

編譯與反編譯技術

《編譯與反編譯技術》是2016年4月機械工業出版社出版的圖書,作者是龐建民、陶紅偉、劉曉楠、岳峰。

基本介紹

  • 書名:編譯與反編譯技術
  • 作者:龐建民
    陶紅偉
    劉曉楠
    岳峰
  • ISBN:9787111534129
  • 定價:59元
  • 出版社:機械工業出版社
  • 出版時間:2016年4月
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

本書首先從正向角度介紹編譯系統的一般原理和基本實現技術,主要內容有詞法分析、語法分析、語義分析與處理、符號表、運行時存儲組織、最佳化、目標代碼生成和多樣化編譯等;然後從反向角度介紹反編譯的相關原理和技術,包括反編譯及其關鍵要素、反編譯器的整體框架、反編譯中的指令解碼和語義描述與映射、反編譯中的恢復技術、編譯最佳化的反向處理、反編譯與信息安全等。
本書可作為計算機及信息安全相關專業高年級本科生的教科書或教學參考書,也可供計算機相關專業研究生和從事編程或者軟體逆向分析工作的工程技術人員參考。

圖書目錄

目錄
前言
教學建議
第1章 引論 1
1.1 編譯器與解釋器 1
1.2 編譯過程 2
1.3 編譯器結構 2
1.4 編譯器的分類及生成 3
1.5 高級語言及其分類 3
1.6 編譯的前端和後端 4
1.7 C語言程式的編譯流程 4
1.8 UNIX/Linux環境中的make和makefile 7
1.9 本章小結 12
習題 12
第2章 詞法分析的理論與實踐 13
2.1 詞法分析器的需求分析 13
2.1.1 詞法分析器的功能 13
2.1.2 分離詞法分析的原因 14
2.2 詞法分析器的設計 15
2.2.1 輸入及其處理 15
2.2.2 單詞符號的描述:正規文法和正規式 15
2.2.3 單詞符號的識別:超前搜尋 21
2.2.4 狀態轉換圖及其實現 22
2.3 有窮自動機 28
2.3.1 確定的有窮自動機 28
2.3.2 非確定的有窮自動機 29
2.3.3 NFA到DFA的轉化 29
2.3.4 DFA的化簡 31
2.4 正規式和有窮自動機的等價性 33
2.5 詞法分析器的生成器 35
2.6 本章小結 37
習題 37
第3章 語法分析 39
3.1 上下文無關文法 39
3.1.1 上下文無關文法的定義 39
3.1.2 語法樹和推導 40
3.1.3 二義性 43
3.2 語法分析器的功能 45
3.3 自上而下的語法分析 45
3.3.1 LL(1)分析方法 45
3.3.2 預測分析程式 53
3.4 自下而上的語法分析 56
3.4.1 移進與歸約 56
3.4.2 LR分析 57
3.4.3 LR(0)分析 60
3.4.4 SLR(1)分析 66
3.4.5 LR(1)分析 69
3.4.6 LALR(1)分析 72
3.4.7 分析方法比較 76
3.5 語法分析器的生成器 76
3.6 本章小結 78
習題 78
第4章 語義分析與處理 81
4.1 語法制導定義與語法制導翻譯 82
4.2 中間語言 91
4.3 語句的翻譯 95
4.3.1 說明語句的翻譯 95
4.3.2 賦值語句的翻譯 100
4.3.3 控制語句的翻譯 106
4.3.4 過程調用語句的翻譯 120
4.4 本章小結 121
習題 121
第5章 符號表 124
5.1 符號表的作用 124
5.2 符號表的內容 125
5.3 符號表的組織 127
5.4 符號表的實現 129
5.5 名字的作用域 132
5.6 本章小結 135
習題 135
第6章 運行時存儲組織 137
6.1 靜態存儲分配 138
6.2 動態存儲分配 138
6.3 棧式動態存儲分配 140
6.3.1 簡單的棧式存儲分配的實現 140
6.3.2 嵌套過程語言的棧式實現 141
6.4 堆式動態存儲分配 145
6.5 存儲分配與安全性 146
6.5.1 緩衝區溢出原理 146
6.5.2 緩衝區溢出的防範 147
6.6 本章小結 148
習題 148
第7章 最佳化 150
7.1 最佳化技術簡介 150
7.2 局部最佳化 151
7.3 循環最佳化 161
7.4 全局最佳化 172
7.4.1 到達–定值數據流分析 173
7.4.2 活躍變數數據流分析和
定值–引用數據流分析 178
7.4.3 可用表達式數據流分析 182
7.4.4 複寫傳播數據流分析 186
7.5 本章小結 192
習題 193
第8章 目標代碼生成 196
8.1 代碼生成器設計中的問題 196
8.1.1 代碼生成器的輸入 196
8.1.2 目標程式 196
8.1.3 指令選擇 197
8.1.4 變數存儲空間分配 197
8.2 暫存器分配 197
8.2.1 暫存器分配描述 198
8.2.2 線性掃描的暫存器分配 199
8.2.3 圖著色的暫存器分配 201
8.3 窺孔最佳化 202
8.3.1 規則提取 202
8.3.2 掃描匹配和等價語義轉換 203
8.3.3 舉例說明 205
8.4 一個代碼生成器實例 205
8.4.1 待用信息和活躍信息 206
8.4.2 暫存器描述和地址描述 207
8.4.3 代碼生成算法 208
8.5 本章小結 209
習題 209
第9章 多樣化編譯 210
9.1 軟體多樣化需求 210
9.2 多變體執行及其環境 211
9.3 海量軟體多樣性 212
9.4 多樣化編譯技術 213
9.5 多樣化編譯的套用 216
9.6 本章小結 217
習題 217
第10章 反編譯及其關鍵要素 218
10.1 什麼是反編譯 218
10.1.1 反編譯概念 218
10.1.2 編譯與反編譯 219
10.1.3 反編譯器 219
10.2 反編譯的基本過程 219
10.2.1 按照反編譯技術實施的順序劃分 220
10.2.2 按照反編譯實踐中的具體操作劃分 224
10.2.3 按照反編譯器的功能塊劃分 227
10.3 反編譯的前世今生 228
10.3.1 建立——20世紀60年代 228
10.3.2 發展——20世紀70年代 229
10.3.3 瓶頸期——20世紀80年代 231
10.3.4 反編譯的春天來了——20世紀90年代 232
10.3.5 持續的研究——進入21世紀 235
10.3.6 身邊的反編譯——我國對反編譯的研究 236
10.4 反編譯的局限、先決條件和評價指標 236
10.4.1 反編譯技術面臨的巨觀問題 236
10.4.2 反編譯技術面臨的技術性問題 237
10.4.3 反編譯的先決條件 238
10.4.4 反編譯器的評價指標 238
10.5 反編譯的套用領域和研究重點 239
10.5.1 套用領域 239
10.5.2 研究重點 239
10.6 本章小結 240
習題 240
第11章 反編譯器的整體框架 241
11.1 “I型”反編譯器的框架 241
11.1.1 上下文環境的銜接 241
11.1.2 dcc反編譯器的框架 242
11.2 經典多源反編譯框架簡介 243
11.2.1 UQBT 243
11.2.2 Hex-Rays 247
11.2.3 BAP 247
11.3 具備靜態反編譯能力的二進制翻譯器ITA 248
11.3.1 ITA總體框架 248
11.3.2 二進制檔案解碼 249
11.3.3 語義映射 251
11.3.4 過程抽象分析 251
11.3.5 最佳化代碼消除 251
11.3.6 C代碼產生器 252
11.3.7 從ITA看靜態反編譯存在的普遍問題 252
11.3.8 對ITA靜態反編譯框架的擴展ITA-E 253
11.4 具備動靜結合反編譯能力的二進制翻譯器UTP-MBC 254
11.4.1 UTP-MBC架構設計需要解決的主要問題 255
11.4.2 UTP-MBC翻譯器的相關研究 256
11.4.3 一體化翻譯架構設計 257
11.5 本章小結 260
習題 261
第12章 反編譯中的指令解碼和語義描述與映射 262
12.1 指令描述和指令解碼 262
12.1.1 相關研究 262
12.1.2 編解碼描述語言SLED 263
12.1.3 基於SLED的x64指令描述和解碼 266
12.1.4 SLED在多源一體解碼體系中的套用 270
12.2 指令的語義映射 275
12.2.1 相關研究 276
12.2.2 語義描述語言SSL 276
12.2.3 中間表示 282
12.2.4 一個示例——指令原子語義描述語言ASDL 284
12.3 本章小結 288
習題 288
第13章 反編譯中的恢復技術 290
13.1 數據流和數據恢復 290
13.1.1 數據流分析 290
13.1.2 數據恢複方法——以IA-64架構上的反編譯為例 297
13.1.3 小結 310
13.2 高級控制流恢復 310
13.2.1 控制流恢復概述 311
13.2.2 高級控制流恢複分析 315
13.2.3 結構化算法介紹 318
13.2.4 可能的問題與解決辦法 325
13.2.5 小結 325
13.3 過程恢復 325
13.3.1 相關知識簡介 326
13.3.2 庫函式的識別技術 328
13.3.3 用戶自定義函式的過程恢復 335
13.4 本章小結 349
習題 349
第14章 編譯最佳化的反向處理 350
14.1 常用的編譯最佳化方法 350
14.1.1 編譯最佳化的原則 350
14.1.2 最佳化手段的分類 350
14.2 部分編譯最佳化的消除——謂詞執行 351
14.2.1 謂詞執行 351
14.2.2 IA-64平台的謂詞指令 351
14.2.3 謂詞消除 353
14.3 本章小結 358
習題 358
第15章 反編譯與信息安全 359
15.1 基於反編譯的惡意行為識別 359
15.1.1 惡意代碼檢測背景 359
15.1.2 檔案格式異常信息 363
15.1.3 指令序列層行為信息提取 366
15.1.4 函式調用信息提取 369
15.2 反編譯在惡意代碼檢測中的套用 377
15.2.1 系統架構的提出 377
15.2.2 推理算法研究的基本內容 378
15.2.3 惡意特徵生成 380
15.2.4 推理規則庫的建立 381
15.2.5 多重多維模糊推理算法的研究與實現 385
15.3 本章小結 391
習題 391
參考文獻 392

相關詞條

熱門詞條

聯絡我們