C++反匯編與逆向分析技術揭秘

出版時間:2011-10  出版社:機械工業(yè)出版社華章公司  作者:錢林松,趙海旭  頁數:411  
Tag標簽:無  

內容概要

《C++反匯編與逆向分析技術揭秘》本書既是一本全面而系統(tǒng)地講解反匯編與逆向分析技術的安全類專著,又是一部深刻揭示C++內部工作機制的程序設計類著作。理論與實踐并重,理論部分系統(tǒng)地講解了C++的各種語法特性和元素的逆向分析方法和流程,重在授人以漁;實踐部分通過幾個經典的案例演示了逆向分析技術的具體實施步驟和方法。
全書共分為三大部分:第一部分主要介紹了VC++6.0、OllyDBG和反匯編靜態(tài)分析工具的使用,以及反匯編引擎的工作原理;第二部分以C/C++語法為導向,以VC++6.0為例,深入解析了每個C/C++知識點的匯編表現(xiàn)形式,包括基本數據類型、表達式、流程控制語句、函數、變量、數組、指針、結構體、類、構造函數、析構函數、虛函數、繼承和多重繼承、異常處理等,這部分內容重在修煉“內功”,不僅講解了調試和識別各種C/C++語句的方法,而且還深入剖析了各知識點的底層機制;第三部分是逆向分析技術的實際應用,通過對PEiD、“熊貓燒香”病毒、OllyDBG調試器等的逆向分析將理論和實踐很好地融合在了一起。
本書適合所有軟件安全領域的工作者、想了解C++內部機制的中高級程序員,以及對Windows底層原理感興趣的技術人員閱讀。

作者簡介

錢林松,資深安全技術專家、軟件開發(fā)工程師和架構師,從事計算機安全和軟件開發(fā)工作12年,實踐經驗極其豐富。尤其精通軟件逆向分析技術,對C/C++技術和Windows的底層機制也有非常深入的研究。武漢科銳軟件技術有限公司創(chuàng)始人,教學經驗豐富,多年來,為國內計算機安全領域培養(yǎng)和輸送了大量的人才?;钴S于看雪論壇,有較高的知名度和影響力。

書籍目錄

前言
第一部分 準備工作
第1章 熟悉工作環(huán)境和相關工具
1.1 調試工具Microsoft Visual C++
6.0和OllyDBG
1.2 反匯編靜態(tài)分析工具IDA
1.3 反匯編引擎的工作原理
1.4 本章小結
第二部分 C++反匯編揭秘
第2章 基本數據類型的表現(xiàn)形式
2.1 整數類型
2.2 浮點數類型
2.3 字符和字符串
2.4 布爾類型
2.5 地址、指針和引用
2.6 常量
2.7 本章小結
第3章 認識啟動函數,找到用戶入口
3.1 程序的真正入口
3.2 了解VC++ 6.0的啟動函數
3.3 main函數的識別
3.4 本章小結
第4章 觀察各種表達式的求值過程
4.1 算術運算和賦值
4.2 關系運算和邏輯運算
4.3 位運算
4.4 編譯器使用的優(yōu)化技巧
4.5 一次算法逆向之旅
4.6 本章小結
第5章 流程控制語句的識別
5.1 if語句
5.2 if…else…語句
5.3 用if構成的多分支流程
5.4 switch的真相
5.5 難以構成跳轉表的switch
5.6 降低判定樹的高度
5.7 dowhilefor的比較
5.8 編譯器對循環(huán)結構的優(yōu)化
5.9 本章小結
第6章 函數的工作原理
6.1 棧幀的形成和關閉
6.2 各種調用方式的考察
6.3 使用ebp或esp尋址
6.4 函數的參數
6.5 函數的返回值
6.6 回顧
6.7 本章小結
第7章 變量在內存中的位置和訪問方式
7.1 全局變量和局部變量的區(qū)別
7.2 局部靜態(tài)變量的工作方式
7.3 堆變量
7.4 本章小結
第8章 數組和指針的尋址
8.1 數組在函數內
8.2 數組作為參數
8.3 數組作為返回值
8.4 下標尋址和指針尋址
8.5 多維數組
8.6 存放指針類型數據的數組
8.7 指向數組的指針變量
8.8 函數指針
8.9 本章小結
第9章 結構體和類
9.1 對象的內存布局
9.2 this指針
9.3 靜態(tài)數據成員
9.4 對象作為函數參數
9.5 對象作為返回值
9.6 本章小結
第10章 關于構造函數和析構函數
10.1 構造函數的出現(xiàn)時機
10.2 每個對象都有默認的構造函數嗎
10.3 析構函數的出現(xiàn)時機
10.4 本章小結
第11章 關于虛函數
11.1 虛函數的機制
11.2 虛函數的識別
11.3 本章小結
第12章 從內存角度看繼承和多重繼承
12.1 識別類和類之間的關系
12.2 多重繼承
12.3 虛基類
12.4 菱形繼承
12.5 本章小結
第13章 異常處理
13.1 異常處理的相關知識
13.2 異常類型為基本數據類型的處理流程
13.3 異常類型為對象的處理流程
13.4 識別異常處理
13.5 本章小結
第三部分 逆向分析技術應用
第14章 PEiD的工作原理分析
14.1 開發(fā)環(huán)境的識別
14.2 開發(fā)環(huán)境的偽造
14.3 本章小結
第15章 “熊貓燒香”病毒逆向分析
15.1 調試環(huán)境配置
15.2 病毒程序初步分析
15.3 “熊貓燒香”的啟動過程分析
15.4 “熊貓燒香”的自我保護分析
15.5 “熊貓燒香”的感染過程分析
15.6 本章小結
第16章 調試器OllyDBG的工作原理分析
16.1 INT3斷點
16.2 內存斷點
16.3 硬件斷點
16.4 異常處理機制
16.5 加載調試程序
16.6 本章小結
第17章 反匯編代碼的重建與編譯
17.1 重建反匯編代碼
17.2 編譯重建后的反匯編代碼
17.3 本章小結
參考文獻

章節(jié)摘錄

版權頁:插圖:下標尋址方式也可以被指針尋址方式所代替,但指針尋址方式需要兩次間接訪問才能訪問到數組內的元素,第一次是訪問指針變量,第二次才能訪問到數組元素,故指針尋址的執(zhí)行效率不會高于下標尋址,但是在使用的過程中更加方便。數組下標和指針的尋址如此相似,如何在反匯編代碼中區(qū)分它們呢?只要抓住一點即可,那就是指針尋址需要兩次以上間接訪問才可以得到數據。因此,在出現(xiàn)了兩次間接訪問的反匯編代碼中,如果第一次間接訪問得到的值作為地址,則必然存在指針。圖8.6就使用寄存器作為指針變量,保存全局數組的地址,從而利用保存了全局數組首地址的寄存器對該數組進行間接訪問操作。數組下標尋址的識別相對復雜,下標為常量時,由于數組的元素長度固定,siZeof(type)*n也為常量,產生了常量折疊,編譯前可直接算出偏移量,因此只需使用數組首地址作為基址加偏移即可尋址相關數據,不會出現(xiàn)二次尋址現(xiàn)象。當下標為變量或者變量表達式時,會明顯體現(xiàn)出數組的尋址公式,且發(fā)生兩次內存訪問,但是和指針尋址明顯不同,第一次訪問的是下標,這個值一般不會作為地址使用,且代入公式計算后才得到地址。值得注意的是,在打開優(yōu)化選項02后,需留心各種優(yōu)化方式。

媒體關注與評論

“工欲善其事,必先利其器”。我經常對課題組的研究生說:“學習知識要把握事物本質(即夯實基礎),基礎牢固了,學習任何技術都能事半功倍,反之亦然?!边@是一本能為程序員(尤其是C++程序員)打牢基礎的專業(yè)書籍,它將引導你一步一步去深入探究和分析程序的本質,從而逐漸讓你在專業(yè)上感到踏實和自信,并在這個領域有豁然開朗的感覺。本書非常適合那些想通過反匯編與逆向分析等技術手段探究C++應用底層奧秘的人,當然,你還要能耐得住寂寞!  ——彭國軍 武漢大學計算機學院副教授我與老錢相識已經相當長時間了,他給我的印象是為人簡單、厚道、仗義。他的書一如他的為人,用簡單、精煉、易懂的語言詮釋了程序世界里晦澀難懂的反匯編與逆向分析技術,是一本不可多得的好書。  ——霄建云 中南民族大學計算機科學學院副院長隨著互聯(lián)網技術的不斷發(fā)展,以及互聯(lián)網應用的不斷暴增和普及,計算機系統(tǒng)的安全保護在今天已經成為一個重要的課題。有一群默默無聞的工作者,他們的職業(yè)是“病毒分析”,一個合格的病毒分析人員必須具備過硬的軟件逆向技術。本書是一本可以給病毒分析人員系統(tǒng)而全面的指導的專業(yè)書籍,對反匯編與逆向分析技術進行了深入且全面的講解,對有志于從事軟件安全相關工作的人來說,本書將對他們大有裨益,值得推薦。  ——蠕輝 金山網絡安全副總監(jiān)一口氣讀完本書的初稿,細細回味,有幾點突出的感受:第一,視角獨特、內容豐富,是作者多年實踐和教學經驗的結晶;第二,深入淺出、重視基礎,不適合走馬觀花式地閱讀,而是要慢慢研讀;第三,內容嚴謹、語言精煉,從中可以看出作者對逆向分析技術之精通和寫作本書的良苦用心。如果你想系統(tǒng)且深入地學習反匯編與逆向分析技術,本書是非常不錯的選擇,強烈推薦!  ——單海波 安全技術專家/《微軟,NET程序的加密與解密》一書的合著者軟件逆向工程主要是通過研究和分析現(xiàn)有的軟件產品來發(fā)現(xiàn)其規(guī)律,從而改進并超越現(xiàn)有產品的過程。通過逆向工程技術,研究人員可以學習他人的編程技術和技巧,窺探商業(yè)軟件的秘密,或開發(fā)與其兼容的軟件。同時,利用逆向工程技術可以對現(xiàn)有軟件進行改造,可以在沒有源代碼的情況下修改目標程序的二進制代碼,擴展程序的功能。掌握一定的逆向技術,對程序員和安全工作者十分有好處。但由于技術比較復雜,初學者往往不知從何入手,既不知道學習的方向,又缺少經驗和有效的分析工具,大都事倍功半。本書是學習逆向工程技術的一個很好的選擇,它從軟件逆向技術的基礎開始講解,逐步深入,在注重闡述逆向技術理論的同時,又結合生動的案例分析,深入淺出地向讀者展示了軟件逆向技術的精髓和實用技巧,能夠幫助讀者快速深入逆向工程技術的核心領域,獲得寶貴的知識和經驗。誠然,要深入理解并熟練應用逆向工程技術,需要大家的勤奮與毅力,這個過程可能有時是枯燥的,但是當你的功力達到一定水平的時候,你會在軟件分析的過程中產生一種直覺,看到目標的匯編代碼,就能知道它們的作用和隱藏在其中的奧秘。這時,你會發(fā)現(xiàn)逆向工程是一門優(yōu)雅的數碼藝術展現(xiàn)形式,它的精神是“自由”?!  武摽囱┸浖踩W站創(chuàng)始人

編輯推薦

《C++反匯編與逆向分析技術揭秘》:深度揭秘軟件逆向分析技術的流程與方法,理論與實踐完美結合,由安全領域資深專家親自執(zhí)筆,看雪軟件安全網站創(chuàng)始人段鋼等多位安全領域專家聯(lián)袂推薦。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    C++反匯編與逆向分析技術揭秘 PDF格式下載


用戶評論 (總計124條)

 
 

  •   目前剛翻看到第七章,實在是按捺不住心中激動的心情,必須要上來認真評論一下以供廣大讀者參考!

    本人從事C++開發(fā)已有8年有余看到此書的最大感觸就是相見恨晚,在多年的軟件開發(fā)及調試過程中不知度過了多少個不眠之夜嘔心瀝血積累的經驗在本書中皆有細致的講解。

    此書中不僅詳細介紹了C++程序在執(zhí)行中涉及到的技術細節(jié)和原理乃至為什么要如此設計的原因。如果一個計算機專業(yè)畢業(yè)略有匯編基礎的C++程序員在入門之時能得到此書的指導,勢必在今后的工作中能少走很多彎路省下不少不眠之夜和業(yè)余時間與家人歡聚一堂?;蛟S剛剛入行的程序員第一時間無法讀透此書中的全部內容,本人建議以半年為單位反復閱讀并結合工作中遇到的問題有針對性的尋求答案。
    雖然我的日常工作絲毫不涉及逆向工程,但一個的C++應用程序在數以千萬計的用戶系統(tǒng)中會出現(xiàn)千奇百怪的異?,F(xiàn)象,遇到各種崩潰各種調試時反匯編是最有效且唯一的辦法。正像作者引言所釋反匯編技術的資料少之又少且晦澀難懂,很難得到重視所以發(fā)布出去的程序出現(xiàn)BUG總是會讓程序員和測試人員焦頭爛額。本書的涉及的技術內容正好填補了這一空白,即便是有多年開發(fā)經驗的熟練開發(fā)人員也會在此書中了解到底層技術的實現(xiàn)為日后的研發(fā)調試工作打下基礎。
    如果您想在C++的世界里風雨無阻那么這本書真的是不二之選,評價的可能有些過高但仍無法表述目前激動的心情,那么最后做一總結:是托兒死全家吧!
  •   C++反匯編與逆向分析技術揭秘(《程序員》雜志“2011年度十大最具技術影響力圖書”,好評如潮,熱銷中)好書。
  •   閱讀這本書需要一定的C++編程、32位匯編、逆向分析等基礎,適合向老鳥轉變的菜鳥學習。
  •   正是我所需要的,對c++有了更深的理解。并對pe,病毒分析,軟件逆向起到了打基礎的作用
  •   對逆向技術的講解很清晰
  •   想玩逆向和病毒分析,這本書不容錯過
  •   本人目前正在學習C++的逆向破解的技術本書,對我的幫助比較大的,個人感覺書不錯,但本書適合有一定技術的人看。
  •   逆向技術經典啊 要仔細研究研究
  •   做逆向分析不容易啊,終于看到了一本我很喜歡的書,值得好好研究!
  •   一本關于逆向分析的好書,但是有些地方有點晦澀,需要仔細研讀。
  •   了解原理,學習逆向的好書
  •   內容很好,適合有一定基礎但未入門逆向的同學看。。。。收到這本書,由于過于興奮,忘記上線確認收貨了
  •   工作需要買的,可以做為學習逆向的指導書.
  •   對逆向很感興趣。
  •   對逆向感興趣的朋友看看,
  •   自己一直想學習逆向,但網上資料太少,稂莠不齊,這本書不錯!
  •   吐血推薦,學習逆向的必備寶典
  •   通過逆向學習,可以讓你編程的能力更上一層樓。非常好的書,值得推薦。
  •   C++對應的匯編代碼的關鍵部分都有很好的分析,例子豐富,推薦
  •   看出錢老師的C++和反匯編的功底很深。值得學習的一本書。提高內功可以。
  •   講述很多逆向方面的知識,對正向編程相互促進。
  •   剛到手,還沒看完,但看目錄是本理論與實踐并重的書希望通過此書能了解到windows底層原理
  •   從內容上來講,沒有匯編和C++基礎的最好不去看,如果你有一定基礎,再想深入學習,確實是一本好書,能讓你掌握平常無法了解的內部機理,是一部練“內功”的書。
  •   這本是我看過的反匯編教程中最好的教材,很深入。
  •   這本書的內容很適合初學反匯編的同學,講得比較詳細,易于掌握了解。
  •   這本書寫的很不錯,一邊學習C++語言,一邊學習反匯編,對C++的理解和認識能夠更深!
  •   開始搞反匯編了,突然喜歡上了。c++的基礎比較扎實。正好用上。
  •   書的內容適合繼續(xù)驅動程序開發(fā)設計或嵌入式開發(fā)者使用,從另一個角度對匯編語言進行復習和解釋,有助于更深刻地理解C++的很多特性。
  •   “深入了解C++對象模型”的絕佳拍檔,C++對象、異常等細節(jié)的匯編級的實現(xiàn)
  •   長期看外國翻譯書籍,沒想到中國人寫的書也可以這樣棒,推薦所有想提高自己的c++程序員都應該看看的好書,可以和《深入探索c++對象模型》一起看
  •   書中的知識是些雞肋(一般用不到)。對計算機有興趣的人,肯定不會只滿足cc++編程的學習,而且更不會只滿足看完這本書。期待看雪更牛的書。。。。。
  •   不少編程者對匯編有恐懼感。閱讀本書后,匯編代碼也許就變身為金庸武俠了。
  •   就像書上說的,要么是想從事安全行業(yè)的,或是想提升C++修為的,都值得一讀
  •   是理解編譯器內部細節(jié)的一本好書!比較注重底層!
  •   無論是C++ 還是 匯編都有一定的很好的幫助!
  •   想了解程序的內部原理么
    想知道程序的實際運行效果么
    就看這本書吧 很不錯
  •   本書從簡單程序入手,在學習過程中逐步提高難度,慢慢形成一套自己的分析代碼的風格和習慣~
  •   借這個平臺反映問題,昨天購買VC++開發(fā)實戰(zhàn)真功夫電子書,極其**受騙,該電子書嚴重損傷當當網信譽,訂單號6895881084,經聯(lián)系當當,回短信說不能退,強烈要求退貨,不允許當當網欺騙銷售,請審核員給予反映相關問題,我能做的是在沒退該單前將不再當當購買任何商品,直至退6895881084,強烈反對霸王條款和欺騙銷售!目前已經取消了6884398504訂單,如強硬不退6895881084,將到各大網站論壇去評價當當欺騙銷售行為,特此通知!后果由當當擔負!6895881084單讓人非常生氣,同時對當當銷售產生了很大的不滿!我們能做的就是對于電子書不退貨霸權條款堅決抵制,如果當當為了掙45元昧心錢覺得失去一個顧客無所謂,你們就一意孤行吧,請把我的意見反饋到你們負責人那里,謝謝!
  •   剛收到,翻了一下。發(fā)現(xiàn)書還不錯,知識很豐富,但同時要求有一定的計算機組成原理、編譯原理等知識。書中會簡單提及,但詳細的還需要自己學習。書很不錯,推薦一下~其他的不足就是估計在運送途中書有磕碰,書脊上部有很嚴重的褶皺,不過不影響閱讀。
  •   很實在的分析書籍,基礎很扎實
  •   讓人深入理解C++的原理
  •   這是一本很好的書,以前有聽說這方面的東西,但是不是很系統(tǒng),現(xiàn)在終于可以深入了解了
  •   比較難,適合windows fans,對linux沒什么用
  •   做C++到一定層次以后,必讀的書,可以讓一名優(yōu)秀的程序員更優(yōu)秀。
  •   很基礎的一本書,但是打好基礎才能更深入的學習。
  •   語句很精煉、深入淺出、思路嚴謹,無論對于新手還是老手,都是不錯的參考學習書籍
  •   一本不錯的書 可以深入了解
  •   真的不錯啊,推薦,值得看。把多年的經驗做個梳理
  •   對于c++的深入學習有很大幫助,多謝作者!
  •   這是一個專家寫的,當然值得一看了,非常期待~
  •   這本書雖然內容比較簡單,但趣味性很強,比國內的書有趣。非常適合新手入門學C++。
  •   包裝很好,發(fā)貨速度快,內容豐富,開心
  •   雖然很好 但是很有難度 適合有一定C++和匯編語言水平的人看 我買得早了點
  •   值得推薦,經典教材
  •   這本書說真的真心不錯,適合有一定基礎的人去深究
  •   經典,一如繼往的好。。。。。。
  •   書內容寫得不錯,適合有C++基礎的人士閱讀
  •   聽人說是經典,就買了,書還沒看。估計不錯。
  •   買書只為支持錢老師,哈哈..........
  •   作為學生,錢老師的書一定要支持!看著書好像在聽老師講課一樣~
  •   今天中午收到這本書,大概翻了下寫的比較細,特適合初學者。
  •   作者很牛逼,內容也細致。推薦一看。
  •   同IDA一起買的,還沒看,書的質量倒是不錯
  •   正是我想要看的書,好好研讀一下
  •   讀書為輔,實際操作為主
  •   需要對C++語言有一定的了解,否則后面可能理解不了。
  •   正在仔細拜讀~~~經典好書,必看~
  •   錢老的書一如往昔的經典??!拜讀ing!
  •   只看了目錄,但是確實很經典!
  •   書是不錯,不過入門者看了確實不是太懂,所以現(xiàn)在在學編程,唉,書是好,可是我沒有能力消化.
  •   質量很好啊啊啊質量很好啊啊啊
  •   好,很好。實用
  •   紙質不是太好,沒之前好,有點毛邊,希望下次不能這樣了。
  •   紙張,印刷都很好,講的也很不錯,可以作為c++進階的書。
  •   文筆好,內容精~!~!大力支持。
  •   質量好 內容好 不錯
  •   很好很喜歡,剛好是做活動的時候買的。價格也可以接受。比書店便宜多了
  •   紙張不是很好啊。內容不錯
  •   好!很有啟發(fā)性!
  •   還在研究中,
  •   C++研發(fā)人員可以看看
  •   最喜歡這一類書了
  •   剛拿到書,還來不及看啊,比較深奧,平時沒這方面的積累,需要花點時間好好研究一番
  •   包裝我還沒拆,買了送人的,應該很不錯吧。
  •   很好的書籍,給人指導方向
  •   這本書真的很不錯哦~~~
  •   看了非常有幫助的一本書
  •   不錯的一本書,正是現(xiàn)在需要的
  •   感覺有點薄,希望這本書的內容能讓我受益
  •   很專業(yè)的一本書,現(xiàn)在正在看。
  •   很專業(yè)的工具書 收藏中~
  •   好書,受益很大,紙質也很不錯
  •   看過了,深入淺出
  •   很不錯的樣子,物流很慢,非常慢。
  •   這次的物流很慢
  •   稍顯過時,但不失為一本入門級的書。
  •   對于對門來說相當不錯,快遞很給力
  •   先收藏著,慢慢看。。
  •   快遞給力,當當給力,剩下的就看自己看書給力不給力了。
  •   不錯 很不錯噢
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網 手機版

京ICP備13047387號-7