逆向工程原理、技術與CTF實踐
周守辰
- 出版商: 清華大學
- 出版日期: 2026-04-01
- 定價: $659
- 售價: $658
- 語言: 簡體中文
- ISBN: 7302712646
- ISBN-13: 9787302712640
-
相關分類:
Penetration-test
下單後立即進貨 (約4週~6週)
相關主題
商品描述
"《逆向工程原理、技術與CTF實踐》結合58個原創實驗、9個CTF競賽題、5個實戰案例,介紹逆向工程的核心原理與技術,涵蓋Windows、Linux、Android等多個平臺以及Java、Python、Go等多種編程語言與工具的逆向分析方法,旨在幫助讀者從零開始系統學習逆向工程的理論與技術,並進行應用實踐。 《逆向工程原理、技術與CTF實踐》共12章,分為3篇。第1篇基礎知識,首先簡要介紹逆向工程的基本概念、實施目的、應用與前沿技術,然後詳細介紹逆向分析原理、逆向分析環境搭建和靜態分析技術等,最後歸納總結並給出提升方法。第2篇進階提升,首先介紹x64dbg和GDB動態調試技術,以及花指令、反調試檢測與繞過、加殼與脫殼等相關技術,然後介紹Java、Python和Go三種編程語言和Unity遊戲開發引擎的逆向分析方法,接著介紹Hook技術,最後歸納總結並給出提升方法。第3篇案例實戰,首先介紹Windows 7原版掃雷遊戲的破解和輔助、植物大戰僵屍遊戲的破解和外掛實現、CS 1.6透視外掛的實現三個遊戲逆向分析應用實戰案例,然後介紹Android勒索病毒和有道翻譯Web接口兩個軟件逆向分析應用實戰案例。 《逆向工程原理、技術與CTF實踐》內容豐富,講解通俗移動,實用性強,適合逆向工程入門人員、網絡安全從業者、信息安全人員、CTF參賽人員與愛好者、軟件開發與測試人員、逆向分析愛好者等相關人員閱讀,也適合作為高等院校信息安全和網絡安全等相關專業的教材。"
作者簡介
周守辰,河海大學計算機科學與技術專業學士,南京航空航天大學網絡空間安全專業碩士。B站網絡安全博主(網名:Mz1不是黑帽子)。現就職於國內某網絡安全公司。曾參與國內各大通信運營商、電網、銀行等公司或機構的網絡安全培訓,擔任逆向分析技術講師,積累了豐富的網絡安全教學經驗。連續多年參與CTF賽事,取得諸多獎項,並為國內多家機構或公司的CTF競賽命題。主要研究方向為Windows、Linux和Android平臺的軟件逆向破解與漏洞挖掘等。熱愛分享,創作了多篇通俗易懂的技術文章,制作了多個科普視頻。擁有2.3萬粉絲。
目錄大綱
第1篇 基礎知識
第1章 逆向工程概述—聞聲探道 2
1.1 逆向工程簡介 2
1.2 逆向工程的實施目的和應用 3
1.3 逆向工程的前沿技術 5
第2章 逆向分析原理—初窺門徑 7
2.1 程序的產生 7
2.1.1 程序的編譯流程 7
2.1.2 手動編譯程序實驗 8
2.2 程序在操作系統上的運行 10
2.2.1 關於操作系統和CPU 10
2.2.2 程序的運行與虛擬地址空間 11
2.2.3 解釋型語言和編譯型語言 13
2.3 初探可執行文件的格式 13
2.3.1 PE文件格式初探 14
2.3.2 ELF文件格式初探 15
2.3.3 APK文件格式初探 16
2.4 反編譯可執行程序的原理 17
2.5 Patch修改可執行程序實驗 20
2.5.1 修改字符串實驗 20
2.5.2 修改程序繞過檢測實驗 21
2.5.3 修改APK定位實驗 23
2.6 小結 27
第3章 逆向分析環境搭建—整裝上陣 28
3.1 搭建開發環境 28
3.1.1 搭建C語言開發環境 28
3.1.2 搭建Python語言開發環境 29
3.2 搭建Windows逆向環境 30
3.2.1 安裝IDA pro 30
3.2.2 安裝Exeinfo PE 30
3.2.3 安裝x64dbg 30
3.2.4 安裝HexWorkShop 31
3.3 搭建Linux逆向環境 31
3.3.1 安裝GNU編譯套件 32
3.3.2 安裝和測試pwndbg 32
3.4 反編譯第一個程序 33
3.4.1 逆向工程之Hello World 33
3.4.2 CTF逆向初體驗 36
3.5 小結 40
第4章 靜態分析技術—觀察、定位、思考和擊破 41
4.1 深入剖析可執行文件的格式 41
4.1.1 PE文件格式 41
4.1.2 ELF文件格式 57
4.1.3 APK文件格式 65
4.2 IDA的基本使用方法 67
4.2.1 啟動裝載程序 68
4.2.2 基本功能的使用 72
4.2.3 使用IDA進行簡單調試 80
4.3 從C語言正向開發到逆向分析 81
4.3.1 函數 82
4.3.2 基本數據類型 86
4.3.3 位運算與算數邏輯表達式 88
4.3.4 數組與指針 90
4.3.5 分支與循環 95
4.3.6 CTF簡單例題分析 100
4.4 常見加密算法的逆向分析 102
4.4.1 Base64編碼分析 102
4.4.2 MD5算法分析 105
4.4.3 RC4算法分析 109
4.4.4 TEA系列加密算法分析 110
4.4.5 AES加密算法分析 113
4.4.6 DES加密算法分析 114
4.4.7 CTF加密題的靜態分析 115
4.5 小結 124
第5章 基礎知識總結—打好基礎,準備進階 125
5.1 重點內容回顧 125
5.2 提升方法 128
第2篇 進階提升
第6章 動態調試技術—在運動戰中冷靜分析 130
6.1 x64dbg的基本用法 130
6.1.1 使用x64dbg運行並附加進程 130
6.1.2 界面功能區 131
6.1.3 軟件斷點和硬件斷點 131
6.1.4 條件斷點的妙用 134
6.2 GDB的基本用法 136
6.2.1 GDB的基本命令 136
6.2.2 GDB的查看和修改內存命令 140
6.2.3 GDB的調試命令 142
6.3 小結 147
第7章 反調試技術—與逆向分析者進行博弈 148
7.1 花指令技術 148
7.1.1 引例 148
7.1.2 剖析原理 150
7.1.3 處理花指令 151
7.1.4 花指令的設計 153
7.1.5 CTF的花指令例題分析 153
7.2 反調試檢測與繞過 160
7.2.1 Windows系統的反調試方法 160
7.2.2 Linux系統的反調試方法 173
7.2.3 雙進程保護原理和實踐 178
7.3 加殼與脫殼 182
7.3.1 自解密代碼實驗 183
7.3.2 手動脫殼實驗 189
7.4 小結 192
第8章 常用編程語言與遊戲開發引擎的逆向分析—知己知彼,百戰不殆 194
8.1 Java語言的逆向分析 194
8.1.1 Java語言的運行原理與環境 194
8.1.2 從正向開發到逆向分析 196
8.1.3 CTF的Java語言逆向例題分析 198
8.2 Python語言的逆向分析 202
8.2.1 Python語言的運行原理與環境 202
8.2.2 PyInstaller打包成可執行文件 205
8.3 Unity程序的逆向分析 207
8.3.1 Mono打包的遊戲逆向分析 208
8.3.2 il2cpp打包的CTF遊戲題分析 211
8.4 Go語言的逆向分析 221
8.4.1 Go語言環境搭建 222
8.4.2 Go語言基礎知識 222
8.4.3 CTF的Go語言的逆向例題分析 224
8.5 小結 230
第9章 Hook技術—監視運行狀態,改變程序行為 231
9.1 初識Hook 231
9.2 進程註入方法 232
9.2.1 進程註入簡介 232
9.2.2 導入表註入 233
9.2.3 遠程線程註入 245
9.2.4 代碼註入 249
9.3 虛表Hook 255
9.3.1 虛表基礎知識 255
9.3.2 虛表Hook實驗 259
9.3.3 虛表Hook總結 265
9.4 IAT Hook技術 265
9.4.1 IAT表基礎知識 266
9.4.2 IAT Hook實驗 266
9.4.3 IAT Hook總結 269
9.5 Inline Hook技術 270
9.5.1 Inline Hook原理 270
9.5.2 Inline Hook實驗 271
9.6 使用Frida框架進行Hook設置 279
9.6.1 Frida環境搭建 280
9.6.2 Frida Hook Windows進程 282
9.6.3 Frida Hook Android App 284
9.6.4 Frida Hook總結 290
9.7 小結 290
第10章 進階提升知識總結—漸入佳境 291
10.1 重點內容回顧 291
10.2 提升方法 294
第3篇 案例實戰
第11章 遊戲逆向分析實戰—揭開外掛的神秘面紗 296
11.1 Windows 7原版掃雷遊戲的破解和輔助 296
11.1.1 獲取掃雷並繞過限制運行 297
11.1.2 獲取雷區數據 300
11.1.3 掃雷自動化 308
11.2 植物大戰僵屍遊戲的破解和外掛實現 311
11.2.1 脫殼和修改資源 311
11.2.2 修改各種數據 319
11.2.3 自動化操作 334
11.3 CS 1.6透視外掛的實現 343
11.3.1 使用遊戲數據定位畫框 343
11.3.2 基於Hook OpenGl繪制透視效果 346
第12章 軟件逆向分析實戰—剖析各種軟件的行為 349
12.1 Android勒索病毒逆向分析 349
12.1.1 查殼 349
12.1.2 脫殼 350
12.1.3 解鎖 351
12.2 有道翻譯Web接口逆向分析 351
12.2.1 測試請求流程並抓包重放 352
12.2.2 逆向分析請求參數並編寫腳本 354
附錄 359
後記 逆向漫談—網絡安全的路有多長 369



