作 者:錢林松,張延清 著
定 價:139
出 版 社:機械工業出版社
出版日期:2021年09月01日
頁 數:612
裝 幀:平裝
ISBN:9787111689911
(1)第1版影響深遠:第1版10年暢銷不衰,成為逆向工程領域標志性著作,口碑爆棚,影響數十萬安全工程師和C++工程師。(2)作者資歷深厚:作者是IT技術領域自學成纔典範,有近20年安全技術研發和教育經驗,深耕逆向分析技術、C++和繫統編程。(3)本書5大用途:逆向分析技術工具和原理、逆向分析技術流程和方法、逆向分析技術精髓和實用技巧、軟件調試技術原理及代碼運行時內存表現、C++語法的實現機制和反彙編表現形式。(4)全球專家力薦:武漢大學、華中科技大學、南京郵電大學的學術界專家力薦;騰訊、360、等
●贊譽
序一
序二
序三
前言
第一部分準備工作
第1章熟悉工作環境和相關工具2
1.1安裝VisualStudio20192
1.2安裝GCC6
1.3調試工具OllyDbg12
1.4調試工具x64dbg14
1.5調試工具WinDbg15
1.6反彙編靜態分析工具IDA17
1.7反彙編引擎的工作原理22
1.8本章小結27
第二部分C++反彙編揭秘
第2章基本數據類型的表現形式30
2.1整數類型30
2.1.1無符號整數30
2.1.2有符號整數31
2.2浮點數類型32
2.2.1浮點數的編碼方式33
2.2.2基本的浮點數指令35
2.3字符和字符串43
2.3.1字符的編碼43
2.3.2字符串的存儲方式44
2.4布爾類型45
2.5地址、指針和引用46
2.5.1指針和地址的區別46
2.5.2各類型指針的工作方式47
2.5.3引用56
2.6常量60
2.6.1常量的定義60
2.6.2#define和const的區別62
2.7本章小結65
第3章認識啟動函數,找到用戶入口66
3.1程序的真正入口66
3.2了解VS2019的啟動函數66
3.3main函數的識別70
3.4本章小結71
第4章觀察各種表達式的求值過程72
4.1算術運算和賦值72
4.1.1各種算術運算的工作形式72
4.1.2算術結果溢出130
4.1.3自增和自減131
4.2關繫運算和邏輯運算136
4.2.1關繫運算和條件跳轉的對應136
4.2.2表達式短路137
4.2.3條件表達式141
4.3位運算149
4.4編譯器使用的優化技巧152
4.4.1流水線優化規則155
4.4.2分支優化規則158
4.4.3高速緩存優化規則159
4.5一次算法逆向之旅159
4.6本章小結164
第5章流程控制語句的識別165
5.1if語句165
5.2if…else…語句168
5.3用if構成的多分支流程174
5.4switch的真相180
5.5難以構成跳轉表的switch196
5.6降低判定樹的高度201
5.7do、while、for的比較206
5.8編譯器對循環結構的優化214
5.9本章小結220
第6章函數的工作原理221
6.1棧幀的形成和關閉221
6.2各種調用方式的考察222
6.3使用ebp或esp尋址226
6.4函數的參數230
6.5函數的返回值232
6.6x64調用約定235
6.7本章小結238
第7章變量在內存中的位置和訪問方式239
7.1全局變量和局部變量的區別239
7.2局部靜態變量的工作方式247
7.3堆變量252
7.4本章小結256
第8章數組和指針的尋址257
8.1數組在函數內257
8.2數組作為參數266
8.3數組作為返回值270
8.4下標尋址和指針尋址276
8.5多維數組282
8.6存放指針類型數據的數組288
8.7指向數組的指針變量290
8.8函數指針296
8.9本章小結299
第9章結構體和類300
9.1對像的內存布局300
9.2this指針305
9.3靜態數據成員311
9.4對像作為函數參數314
9.5對像作為返回值322
9.6本章小結329
第10章構造函數和析構函數331
10.1構造函數的出現時機331
10.2每個對像是否都有默認的構造函數353
10.3析構函數的出現時機355
10.4本章小結375
第11章虛函數377
11.1虛函數的機制377
11.2虛函數的識別383
11.3本章小結389
第12章從內存角度看繼承和多重繼承391
12.1識別類和類之間的關繫392
12.2多重繼承418
12.3抽像類426
12.4虛繼承428
12.5本章小結443
第13章異常處理445
13.1異常處理的相關知識445
13.2異常類型為基本數據類型的處理流程451
13.3異常類型為對像的處理流程459
13.4識別異常處理464
13.5x64異常處理475
13.5.1RUNTIME_FUNCTION結構476
13.5.2UNWIND_INFO結構476
13.5.3UNWIND_CODE結構478
13.5.4特定於語言的處理程序478
13.5.5x64FuncInfo的變化479
13.5.6還原x64的try…catch481
13.6本章小結484
第三部分逆向分析技術應用
第14章PEiD的工作原理分析486
14.1開發環境的識別486
14.2開發環境的偽造494
14.3本章小結497
第15章調試器OllyDbg的工作原理分析498
15.1INT3斷點498
15.2內存斷點503
15.3硬件斷點507
15.4異常處理機制513
15.5加載調試程序519
15.6本章小結522
第16章大灰狼遠控木馬逆向分析523
16.1調試環境配置523
16.2病毒程序初步分析524
16.3啟動過程分析525
16.4通信協議分析532
16.5遠控功能分析536
16.6本章小結551
第17章WannaCry勒索病毒逆向分析552
17.1tasksche.exe勒索程序逆向分析552
17.1.1病毒初始化552
17.1.2加載病毒核心代碼558
17.1.3病毒核心代碼562
17.2mssecsvc.exe蠕蟲程序逆向分析569
17.2.1蠕蟲病毒代碼初始化569
17.2.2發送漏洞攻擊代碼573
17.3永恆之藍MS17-010漏洞原理分析577
17.3.1漏洞1利用分析577
17.3.2漏洞2利用分析583
17.3.3漏洞3利用分析584
17.4本章小結586
第18章反彙編代碼的重建與編譯587
18.1重建反彙編代碼587
18.2編譯重建後的反彙編代碼590
18.3本章小結591
參考文獻592
這是一部繫統講解反彙編與逆向分析技術原理、流程、方法和實用技巧的著作。
本書第1版出版於2011年,10年來暢銷不衰,成為反彙編與逆向工程領域的標志性著作,被數十萬安全工程師和C++工程師奉為瑰寶。在全球學術界和企業界都享有盛譽,故第2版得到了全球15位安全技術專家的傾力推薦。第2版在技術、工具和案例等方面做了大量的更新和補充。
通過本書,你將掌握以下知識或技能:
逆向分析技術的工具和原理;
逆向分析技術的流程和方法;
逆向分析技術的精髓和實用技巧;
軟件調試的技術原理,以及代碼運行時的內存表現;
C++語法的實現機制和反彙編表現形式。
全書共18章,分為三個部分:
第1部分 準備工作 (第1章)
簡單地介紹了編譯器、調試器和反彙編靜態分析工具的使用方法以及反彙編引擎的工等