TOP
0
0
2025新年快樂!買書領券省荷包
C++反彙編與逆向分析技術揭秘(第2版)(簡體書)
滿額折

C++反彙編與逆向分析技術揭秘(第2版)(簡體書)

商品資訊

人民幣定價:139 元
定價
:NT$ 834 元
優惠價
87726
海外經銷商無庫存,到貨日平均30天至45天
下單可得紅利積點:21 點
商品簡介
作者簡介
名人/編輯推薦
目次
相關商品

商品簡介

這是一部系統講解反彙編與逆向分析技術原理、流程、方法和實用技巧的著作。
本書第1版出版於2011年,10年來暢銷不衰,成為反彙編與逆向工程領域的標誌性著作,被數十萬安全工程師和C++工程師奉為瑰寶。在全球學術界和企業界都享有盛譽,故第2版得到了全球15位安全技術專家的傾力推薦。第2版在技術、工具和案例等方面做了大量的更新和補充。
通過本書,你將掌握以下知識或技能:
?逆向分析技術的工具和原理;
?逆向分析技術的流程和方法;
?逆向分析技術的精髓和實用技巧;
?軟件調試的技術原理,以及代碼運行時的內存表現;
?C++語法的實現機制和反彙編表現形式;

全書共18章,分為三個部分:
第1部分 準備工作 (第1章)
簡單地介紹了編譯器、調試器和反彙編靜態分析工具的使用方法以及反彙編引擎的工作原理;
第二部分C++反彙編揭秘(第2~13章)
以多種編譯器為例解析了每個C/C++知識點的彙編表現形式,通過整理反彙編代碼梳理流程和脈絡,講解了調試和識別各種C/C++語句的方法,並且深入剖析各知識點的底層機制;
第三部分 逆向分析技術應用(第14~18章)
通過對PEiD、調試器 OllyDbg、木馬、勒索病毒等實際應用的逆向分析,帶領讀者領路逆向分析技術的魔力,並加深對所學理論知識的理解。

作者簡介

錢林松
資深安全技術專家、軟件發展工程師和架構師。從事計算機安全和軟件發展工作近20年,實踐經驗豐富,尤其精通軟件逆向分析技術,對C/C++技術和Windows的底層機制也有非常深入的研究。
武漢科銳軟件技術有限公司(國內知名的安全教育機構)創始人,教學經驗豐富,多年來,為國內計算機安全領域培養和輸送了大量的人才。活躍於看雪論壇,有較高的知名度和影響力。
張延清
軟件逆向教育專家,看雪論壇技術專家。2004年從事數控機床加工程序設計,2006年進入遊戲程序設計及C/C++開發與逆向分析領域,2011年就職於武漢科銳軟件技術有限公司,任技術總監兼授課老師。創立國內Android軟件逆向分析教育課程體系,該課程體系被多家培訓教育機構採用。
科銳·安全實訓領軍者
科銳創辦自2007年,一直專注於逆向分析人才培養,畢業學員逾千人,廣泛就業於各安全企業,從事技術與技術管理工作。科銳通過一套嚴格的科學考核體系,確保學員對每一個知識點的掌握,從而保證教學質量,使每一個畢業學員都能符合企業的用人需求。真正實現以實踐為主的實訓理念,是我們最終的實訓目標。

名人/編輯推薦

逆向工程領域標誌性著作,第1版暢銷10年,安全領域瑰寶,侯捷等全球15位專家口碑力薦

為什麼要寫這本書
“時下的IDE很多都是極其優秀的,拜其所賜,職場上的程序員多出十幾倍,但是又有多少人能理解程式內部的機制呢?”
—侯捷

隨著軟件技術的發展及其在各個領域的廣泛應用,對軟件進行逆向分析,通過閱讀其反彙編代碼推斷資料結構、體系結構和程序設計思路的需求越來越多。逆向分析技術能幫助我們更好地研究和學習先進的軟件技術,特別是當我們非常想知道某個軟件的某些功能是如何實現的而手頭又沒有合適的資料時。
如果能夠利用逆向技術去研究一些一流軟件的設計思想和實現方法,那麼我們的軟件技術水準將會得到極大的提升。目前,國內關於逆向分析技術的資料實在不多,大中專院校的計算機相關專業對此技術也沒有足夠的重視。
有很多人認為研究程式的內部原理會破壞“黑盒子”的封裝性,但是如果我們只是在別人搭建好的平臺上做開發,那麼始終只能使用別人提供的未開源的SDK,會一直受牽制。如果我們能夠充分掌握逆向分析方法,就可以洞悉各種SDK的實現原理,學習各種一流軟件採用的先進技術,取長補短,為我所用。若能如此,實為我國軟件產業之幸。
我當初學習逆向技術時完全靠自學,且不說這方面的書籍,就連相關的文檔和資料也極度匱乏。在這種條件下,雖然很努力地鑽研,但學習進度非常緩慢,花費幾天幾夜分析一個軟件的關鍵算法是常有的事。如果當初能有一本全面講解反彙編與逆向分析技術的書,我不僅能節省很多時間和精力,還能少走很多彎路。因為有了這段經歷,我斗膽爭先,決定將自己多年來在反彙編與逆向分析技術領域的經驗和心得整理出來與大家分享,希望更多的開發人員在掌握這項技術後能更好地將其應用到軟件發展實踐中,從而提高我國軟件行業的整體水準。
讀者物件
無論大家從事哪個行業,在開始閱讀本書之前,都需要具備以下幾個方面的基礎知識。
資料結構的基礎知識,如棧結構存取元素的特點等。
彙編的基礎知識,如定址方式和指令的使用等。
C/C++語言的基礎知識,如指標、虛函數和繼承的概念等。
熟悉Visual Studio 2019的常用功能,如觀察某變數的位址、單步跟蹤等。
具備了上面這些基礎知識,就可以根據自己的實際需求學習本書的內容。
如果你是一位元軟件研發人員,你將通過本書更深入地瞭解C++語法的實現機制,對產品知其然更知其所以然。在精讀反彙編代碼後,你的調試水準也會得到質的提升。
如果你是一位元反病毒分析人員或者電子證據司法取證分析人員,通過逆向分析惡意軟件樣本,你可以進行取證分析處理,例如,分析開發者的編寫習慣、推斷開發者的程序設計水準,甚至可以進一步判定某病毒樣本是否與其他病毒出自同一人之手。
如果你是一位元高等院校計算機相關專業的學生(本科或本科以上),你可以通過學習書中的軟件逆向分析技術來拓展思路,為未來進軍軟件研發行業打下基礎。
第2版的更新內容
重新設計了所有的示例。
所有的反彙編代碼均使用最新的Visual Studio 2019編譯器編譯。
增加最新的Clang編譯器反彙編代碼講解。
增加最新的GCC編譯器反彙編代碼講解。
增加所有主流編譯器64位元程式反彙編代碼講解。
隨書檔增加所有示例單獨的源碼和所有編譯器編譯後的可執行程式。
根據最新編譯器刪除了一些過時的內容,增加了一些新的內容。
增加和更新了病毒分析示例。
本書特色
我結合自己的學習經歷和對C++反彙編與逆向分析技術的瞭解將全書劃分為三個部分。
第一部分 準備工作(第1章)
在軟件發展過程中,程序員會使用一些調試工具,以便高效地找出軟件中存在的錯誤。在逆向分析領域,分析者也要利用相關工具分析軟件行為,驗證分析結果。本書第一部分簡單介紹了幾款常用的逆向分析輔助工具和軟件。
第二部分 C++反彙編揭秘(第2~13章)
評估一位軟件發展者的能力,一是看設計能力,二是看調試水準。一般來說,大師級的程序員對軟件逆向分析技術都有深入的理解,他們在編寫高階語言代碼的同時,心裡還會浮現對應的彙編代碼,在寫程式的時候就已經非常瞭解最終產品的模樣,達到了人機合一的境界,所以在調試Bug的時候遊刃有餘。逆向分析技術重在代碼的調試和分析,如果你本來就是一位技術不錯的程序員,學習這部分內容就是對你“內功”的鍛煉,這部分內容可以説明你徹底掌握C/C++各種特性的底層機制,不僅能做到知其然,還能知其所以然。這部分以C/C++語法為導向,以各編譯器為例,解析每個C/C++知識點的彙編表現形式,通過整理其反彙編代碼梳理流程和脈絡。這部分內容重在講方法,授人以漁,不重劍招,但重劍意。
第三部分 逆向分析技術應用(第14~18章)
這是本書的最後一部分,以理論與實踐相結合的方式,通過對具體程式的分析來加深大家對前面所學理論知識的理解,從而快速積累實戰經驗。第14章分析了PE文件分析工具PEiD的工作原理,第15章分析了調試器OllyDbg的工作原理,第16章對大灰狼遠控木馬進行了逆向分析,第17章對WannaCry勒索病毒進行了逆向分析,第18章講解了反彙編代碼的重建與編譯。通過這部分內容

目次

讚譽
序一
序二
序三
前言
第一部分 準備工作
第1章 熟悉工作環境和相關工具2
1.1 安裝Visual Studio 20192
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.3 main函數的識別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.1 if語句165
5.2 if…else…語句168
5.3 用if構成的多分支流程174
5.4 switch的真相180
5.5 難以構成跳轉表的switch196
5.6 降低決策樹的高度201
5.7 do、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.6 x64調用約定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.2 this指標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.5 x64異常處理475
13.5.1 RUNTIME_FUNCTION結構476
13.5.2 UNWIND_INFO結構476
13.5.3 UNWIND_CODE結構478
13.5.4 特定於語言的處理常式478
13.5.5 x64 FuncInfo的變化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.1 INT3中斷點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.1 tasksche.exe勒索程式逆向分析552
17.1.1 病毒初始化552
17.1.2 載入病毒核心代碼558
17.1.3 病毒核心代碼562
17.2 mssecsvc.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

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 726
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區