第1章 緒論
1.1 軟件逆向分析
1.1.1 與安全相關的逆向分析
1.1.2 針對軟件開發(fā)的逆向分析
1.1.3 本書的主要內容
1.2 軟件逆向分析的歷史
1.3 軟件逆向分析的各個階段
1.3.1 文件裝載
1.3.2 指令解碼
1.3.3 語義映射
1.3.4 相關圖構造
1.3.5 過程分析
1.3.6 類型分析
1.3.7 結果輸出
1.4 逆向分析框架
1.4.1 靜態(tài)分析框架
1.4.2 動態(tài)分析框架
1.4.3 動靜結合的分析框架
第2章 指令系統(tǒng)
2.1 指令系統(tǒng)概述
2.2 機器指令與匯編指令
2.2.1 機器指令
2.2.2 匯編指令
2.3 LA.6 4體系結構的特點
2.3.1 顯式并行機制_
2.3.2 IA.64微處理器體系結構
2.4 指令格式
本章 小結
第3章 可執(zhí)行文件
3.1 可執(zhí)行文件概述
3.2 可執(zhí)行文件格式
3.2.1 ELF文件的3種主要類型
3.2.2 文件格式
3.2.3 數據表示
3.2.4 文件頭
3.2.5 節(jié)
3.2.6 字符串表
3.2.7 符號表
3.3 一個簡單的ELF文件分析
3.3.1 文件頭分析
3.3.2 section信息分析
本章 小結
第4章 反匯編技術
4.1 反匯編技術簡介
4.2 反匯編算法流程
4.2.1 線性掃描算法
4.2.2 遞歸掃描算法
4.3 反匯編工具的自動構造方法
4.3.1 自動構造工具
4.3.2 利用自動構造方法構建IA-64反匯編器
4.4 常用反匯編工具介紹
4.4.1 IDAPro介紹
4.4.2 ILDasm介紹
本章 小結
第5章 指令的語義抽象
5.1 語義描述語言
5.1.1 SSL簡介
5.1.2 SSL文法的設計
5.1.3 SSL文法的擴展
5.2 中間表示
5.2.1 低級中間表示(RTL)
5.2.2 高級中間表示(HRTL)
5.3 指令的語義抽象技術
5.3.1 語義抽象技術簡介
5.3.2 指令語義的SSL描述
5.3.3 指令語義的高級模擬
5.4 基于SSL的IA.64指令語義抽象技術
5.4.1 IA.64的體系結構特征描述
5.4.2 整數指令的語義描述
5.5 基于模擬的IA.64指令語義抽象技術
5.5.1 IA.64浮點特性
5.5.2 浮點指令的語義模擬
5.5.3 浮點并行指令的語義模擬
本章 小結
第6章 基本數據類型分析
6.1 數據類型分析的相關概念
6.1.1 ITA系統(tǒng)中數據類型分析的依據
6.1.2 ITA系統(tǒng)中基本數據類型分析的重要性
6.1.3 ITA系統(tǒng)中基本數據類型和高級C語言數據類型
6.2 基于指令語義的基本數據類型分析
6.2.1 &和*運算符
6.2.2 普通算術指令的描述
6.2.3 內存讀寫指令
6.2.4 轉移指令
6.3 基于過程的數據類型分析技術
6.3.1 變量重命名技術
6.3.2 變量類型推導的規(guī)則
6.3.3 格理論在變量類型推導中的應用
本章 小結
第7章 高級控制流恢復
7.1 控制流恢復概述
7.1.1 控制語句在中間代碼中的組織特點
7.1.2 基本塊的劃分及控制流圖的構建
7.1.3 控制流恢復術語
7.2 高級控制流恢復分析
7.2.1 可結構化和不可結構化循環(huán)子圖
7.2.2 可結構化和不可結構化two-way條件子圖
7.2.3 可結構化和不可結構化n-way條件子圖
7.2.4 多重結構頭節(jié)點子圖
7.3 結構化算法介紹
7.3.1 對流圖各節(jié)點進行正向后序遍歷
7.3.2 對流圖各節(jié)點進行反向后序遍歷
7.3.3 直接后必經節(jié)點的確定
7.3.4 結構化含有條件判斷的子圖
7.3.5 使用Pr定理構建循環(huán)子圖結構
7.4 可能出現的問題與解決辦法
本章 小結
第8章 過程恢復技術
8.1 相關知識簡介
8.1.1 調用約定
8.1.2 控制流分析及數據流分析
8.1.3 過程抽象
8.1.4 過程分析的目標
8.2 庫函數恢復
8.2.1 內嵌庫函數的恢復
8.2.2 動態(tài)鏈接庫函數的恢復
8.3 用戶自定義函數分析
8.3.1 函數名識別
8.3.2 用戶自定義函數的參數分析
8.3.3 用戶自定義函數的返回值分析
本章 小結
第9章 部分編譯優(yōu)化效果的消除
9.1 謂詞執(zhí)行效果的消除
9.1.1 謂詞執(zhí)行和IF轉換
9.1.2 簡單謂詞消除策略
9.1.3 謂詞分析
9.1.4 謂詞消除
9.2 投機優(yōu)化的消除
9.2.1 IA.64中投機的方式及實現方法
9.2.2 反投機的目的和算法設計
9.3 軟件流水優(yōu)化的消除
9.3.1 軟件流水機制
9.3.2 IA.64軟件流水循環(huán)
9.3.3 軟件流水消除技術
9.3.4 ITA系統(tǒng)中軟件流水消除技術的實現
本章 小結
第10章 程序的調試與測試
10.1 常用程序調試工具
10.2 幾種常用測試集
參考文獻