反編譯技術(shù)與軟件逆向分析

出版時(shí)間:2009-11  出版社:國(guó)防工業(yè)出版社  作者:趙榮彩,龐建民,張靖博 編著  頁數(shù):218  
Tag標(biāo)簽:無  

前言

隨著計(jì)算機(jī)科學(xué)和相關(guān)技術(shù)的不斷發(fā)展,尤其是各種編程語言的不斷豐富與壯大,相關(guān)人員對(duì)貼近于硬件層的低級(jí)形式編碼越來越陌生。但是,事實(shí)表明計(jì)算機(jī)軟件領(lǐng)域從來沒有過,也不可能真正脫離對(duì)繁瑣的低級(jí)代碼進(jìn)行分析的需求,而軟件逆向分析技術(shù)在近年來重新成為計(jì)算機(jī)科學(xué)領(lǐng)域的研究熱點(diǎn)。在眾多逆向分析技術(shù)中,反編譯是對(duì)目標(biāo)程序分析最為徹底,但也是最為困難的技術(shù)領(lǐng)域。從名稱上可以看出,反編譯技術(shù)是編譯技術(shù)的逆過程,即將低級(jí)目標(biāo)可執(zhí)行代碼翻譯為語義等價(jià)的高級(jí)語言表示形式。本書希望能夠?yàn)閺氖萝浖嫦蚍治龅目蒲腥藛T和工作者提供有效的幫助。與其他相關(guān)的逆向分析書籍不同的是,編者沒有局限于對(duì)二進(jìn)制代碼的反匯編分析,或者局限于對(duì)不同逆向分析輔助工具的使用指導(dǎo),而是希望能夠在反匯編層面分析的基礎(chǔ)上對(duì)目標(biāo)低級(jí)程序進(jìn)行進(jìn)一步挖掘,從而獲取更多的有效信息。畢竟現(xiàn)有的各種逆向分析工具的功能不一,不能完全滿足業(yè)界復(fù)雜多變的需求。“授人以魚,不如授之以漁”,本書希望能夠幫助讀者深入了解并掌握一個(gè)完整反編譯工具的各個(gè)部分,從而編寫真正滿足自己需求的逆向分析工具。全書分為三大部分,共10章。第一部分,包括第1章至第3章。簡(jiǎn)要介紹了軟件逆向分析技術(shù)的相關(guān)基礎(chǔ)知識(shí),為讀者的進(jìn)一步閱讀奠定良好的基礎(chǔ)。包括軟件逆向分析的背景知識(shí)、不同體系結(jié)構(gòu)指令系統(tǒng)的相關(guān)背景,以及針對(duì)可執(zhí)行文件格式的介紹。在指令系統(tǒng)一章中介紹了兩種完全不同的體系結(jié)構(gòu),即CISC體系結(jié)構(gòu)和EPIC體系結(jié)構(gòu),并且著重針對(duì)Intel公司的64位安騰處理器的IA-64體系結(jié)構(gòu)指令系統(tǒng)進(jìn)行分析。在可執(zhí)行文件格式一章,則著重解析了在Linux操作系統(tǒng)中流行的ELF可執(zhí)行文件格式。第二部分,包括第4章、第5章。

內(nèi)容概要

本書共分10章。第1章到第3章簡(jiǎn)要介紹了軟件逆向分析技術(shù)的相關(guān)基礎(chǔ)知識(shí);第4章和第5章從反匯編和中間表示兩個(gè)方面為反編譯奠定基礎(chǔ);第6章到第9章針對(duì)反編譯的若干關(guān)鍵技術(shù)展開詳細(xì)介紹;第10章則為反編譯測(cè)試相關(guān)的一些可用資源。全書以IA-64可執(zhí)行代碼為例進(jìn)行講解,但相關(guān)技術(shù)可以向其他平臺(tái)推廣?! ”緯勺鳛橛?jì)算機(jī)軟件專業(yè)本科高年級(jí)學(xué)生、碩士研究生的相關(guān)課程教科書或教學(xué)參考書,也可供從事軟件逆向分析工作的工程技術(shù)人員參考。

書籍目錄

第1章 緒論 1.1 軟件逆向分析  1.1.1 與安全相關(guān)的逆向分析  1.1.2 針對(duì)軟件開發(fā)的逆向分析  1.1.3 本書的主要內(nèi)容 1.2 軟件逆向分析的歷史 1.3 軟件逆向分析的各個(gè)階段  1.3.1 文件裝載  1.3.2 指令解碼  1.3.3 語義映射  1.3.4 相關(guān)圖構(gòu)造  1.3.5 過程分析  1.3.6 類型分析  1.3.7 結(jié)果輸出 1.4 逆向分析框架  1.4.1 靜態(tài)分析框架  1.4.2 動(dòng)態(tài)分析框架  1.4.3 動(dòng)靜結(jié)合的分析框架第2章 指令系統(tǒng) 2.1 指令系統(tǒng)概述 2.2 機(jī)器指令與匯編指令  2.2.1 機(jī)器指令  2.2.2 匯編指令 2.3 LA.6 4體系結(jié)構(gòu)的特點(diǎn)  2.3.1 顯式并行機(jī)制_  2.3.2 IA.64微處理器體系結(jié)構(gòu) 2.4 指令格式 本章小結(jié)第3章 可執(zhí)行文件 3.1 可執(zhí)行文件概述 3.2 可執(zhí)行文件格式  3.2.1 ELF文件的3種主要類型  3.2.2 文件格式  3.2.3 數(shù)據(jù)表示  3.2.4 文件頭  3.2.5 節(jié)  3.2.6 字符串表  3.2.7 符號(hào)表 3.3 一個(gè)簡(jiǎn)單的ELF文件分析  3.3.1 文件頭分析  3.3.2 section信息分析 本章小結(jié)第4章 反匯編技術(shù) 4.1 反匯編技術(shù)簡(jiǎn)介 4.2 反匯編算法流程  4.2.1 線性掃描算法  4.2.2 遞歸掃描算法 4.3 反匯編工具的自動(dòng)構(gòu)造方法  4.3.1 自動(dòng)構(gòu)造工具  4.3.2 利用自動(dòng)構(gòu)造方法構(gòu)建IA-64反匯編器 4.4 常用反匯編工具介紹  4.4.1 IDAPro介紹  4.4.2 ILDasm介紹 本章小結(jié)第5章 指令的語義抽象 5.1 語義描述語言  5.1.1 SSL簡(jiǎn)介  5.1.2 SSL文法的設(shè)計(jì)  5.1.3 SSL文法的擴(kuò)展 5.2 中間表示  5.2.1 低級(jí)中間表示(RTL)  5.2.2 高級(jí)中間表示(HRTL) 5.3 指令的語義抽象技術(shù)  5.3.1 語義抽象技術(shù)簡(jiǎn)介  5.3.2 指令語義的SSL描述  5.3.3 指令語義的高級(jí)模擬 5.4 基于SSL的IA.64指令語義抽象技術(shù)  5.4.1 IA.64的體系結(jié)構(gòu)特征描述  5.4.2 整數(shù)指令的語義描述 5.5 基于模擬的IA.64指令語義抽象技術(shù)  5.5.1 IA.64浮點(diǎn)特性  5.5.2 浮點(diǎn)指令的語義模擬  5.5.3 浮點(diǎn)并行指令的語義模擬 本章小結(jié)第6章 基本數(shù)據(jù)類型分析第7章 高級(jí)控制流恢復(fù)第8章 過程恢復(fù)技術(shù)第9章 部分編譯優(yōu)化效果的消除第10章 程序的調(diào)試與測(cè)試參考文獻(xiàn)

章節(jié)摘錄

插圖:2.逆向分析加密算法加密系統(tǒng)往往與隱私有關(guān):一個(gè)人傳遞給另一個(gè)人的信息可能并不想讓其他人知道??梢源致缘貙⒓用芩惴ǚ譃閮山M:有限加密算法和基于密鑰的算法。有限加密算法好比一些孩子們玩的游戲:寫給一個(gè)朋友一封信,信中的每個(gè)字母都經(jīng)過向上或向下的若干次移動(dòng)。有限加密算法的秘密在于算法本身,一旦算法被揭露,也就毫無秘密可言。由于逆向分析可以分析出加密或解密算法,因此有限加密算法只能提供非常脆弱的安全性。由于其算法也是保密的,因此逆向分析可以被看作是對(duì)算法的破解過程。另一方面,基于密鑰的算法的秘密是密鑰,即一些類似于數(shù)字的值,它們可以由某些算法來對(duì)信息進(jìn)行加密和解密。在基于密鑰的算法中,用戶使用密鑰對(duì)信息進(jìn)行加密,并保證密鑰的隱蔽性。這種算法通常是公開的,而僅需要保護(hù)密鑰即可。由于算法是已知的,因此逆向分析變得毫無意義。為了對(duì)一條經(jīng)過基于密鑰算法加密的信息進(jìn)行解密,可能需要以下3種途徑:①獲取密鑰;②嘗試所有可能的組合;③尋找算法中的缺陷,從而解析出密鑰或最初的信息。盡管如此,對(duì)于基于密鑰加密方法的逆向分析在某些方面卻意義非凡。即便加密算法廣為人知,特定的實(shí)現(xiàn)細(xì)節(jié)也會(huì)對(duì)程序提供的所有安全級(jí)別造成意想不到的影響。無論加密算法如何精巧,很小的實(shí)現(xiàn)錯(cuò)誤也有可能使該算法提供的安全級(jí)別失效。而確認(rèn)一個(gè)安全產(chǎn)品是否真正地實(shí)現(xiàn)一個(gè)加密算法只有兩種途徑:要么分析它的源代碼(假定是可行的),要么進(jìn)行逆向分析。3.?dāng)?shù)字版權(quán)管理現(xiàn)代計(jì)算機(jī)系統(tǒng)已經(jīng)將大多數(shù)類型的具有版權(quán)的材料轉(zhuǎn)變?yōu)閿?shù)字信息,包括音樂、影視,甚至?xí)?。這些信息以前只能夠通過具體的媒介獲取,而現(xiàn)在可以通過數(shù)字化信息得到。這種趨勢(shì)為用戶提供了巨大的好處,也為版權(quán)擁有者和內(nèi)容提供商帶來了一些問題。對(duì)于用戶來說,這意味著資料質(zhì)量的提高,并且易于獲取和管理。對(duì)于提供商來說,這使得他們能夠以很低的費(fèi)用提供高質(zhì)量的內(nèi)容,但更為重要的是,這種方式使得對(duì)內(nèi)容流向的控制無法完成。數(shù)字化信息以難以想象的速度在流動(dòng),并且易于復(fù)制。這種流動(dòng)性意味著一旦帶有版權(quán)的資料到達(dá)用戶手中,用戶能夠很容易地對(duì)其進(jìn)行移動(dòng)和復(fù)制,因此盜版也變得相當(dāng)容易。通常軟件公司通過在軟件產(chǎn)品中嵌入復(fù)制保護(hù)技術(shù)防止被盜版,即通過在軟件產(chǎn)品中嵌入代碼片段來防止或限制用戶對(duì)程序進(jìn)行復(fù)制。

編輯推薦

《反編譯技術(shù)與軟件逆向分析》由國(guó)防工業(yè)出版社出版。

圖書封面

圖書標(biāo)簽Tags

評(píng)論、評(píng)分、閱讀與下載


    反編譯技術(shù)與軟件逆向分析 PDF格式下載


用戶評(píng)論 (總計(jì)21條)

 
 

  •   專業(yè)度還行
  •   必須學(xué)的知識(shí)、。
  •   不錯(cuò)的一本書,送貨也很快。不錯(cuò)!?。?/li>
  •   很薄一本書,一天就看完了,不過還有不少有用的東西
  •   此書一般吧,送來時(shí)還淋了雨了。。。
  •   不錯(cuò)的一本工具書,很實(shí)用,很好!
  •   太慢,送貨,態(tài)度還可以
  •   所以看下
  •   那時(shí)沒貨
  •   這書還行!
  •   仔細(xì)看了,還可以!
  •   閱讀該書要有一定基礎(chǔ)
  •   理論多一些, 如何用起來,有待繼續(xù)學(xué)習(xí)
  •   比較難,買的有些后悔。
  •   賣家還不錯(cuò),就是時(shí)間長(zhǎng)了點(diǎn)
  •   太高深了,看不懂,不具體,無實(shí)用價(jià)值
  •   完全教學(xué)類,不適用,原理也講的很淺,只介紹IA64和ELF,非常虛。
  •   標(biāo)題黨,內(nèi)容不充實(shí),論述不清楚,
  •   泛泛而談,適合教授,不適合程序員
  •   基本上都是在描述理論 感覺很空洞的說
  •   書太貴...內(nèi)容有點(diǎn)少...太薄....實(shí)例不夠多
 

250萬本中文圖書簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7