出版時間:2010-3 出版社:人民郵電出版社 作者:Chris Eagle 頁數:445 譯者:石華耀,段桂菊
Tag標簽:無
前言
這些年來,人們曾無數次地問我一個問題:究竟應該如何開始逆向工程?當然,回答這個問題并不容易,因為每個人的具體情況都不一樣。一些人希望閱讀一本有關這個主題的好書,另一些人寧愿參加培訓,還有人卻愿意坐下來自學必要的技能。我應該屬于最后一類,在逆向工程方面,我主要靠自學,盡管我在計算機工程和計算機科學方面接受了良好的正規(guī)教育。接受正規(guī)教育通常是達到某種目的(如取得學位)的途徑,不過更多的是為我研究某個我更感興趣的、非專業(yè)的領域而服務。 如果想進入逆向工程領域,需要特別強調的是,你必須培養(yǎng)熟練的編程技能。你最好是愛上代碼,甚至是吃飯、睡覺、呼吸都離不開代碼。如果你害怕編程,那么逆向工程可能不適合你。就我而言,編程和逆向工程就像做《紐約時報》上的填字游戲一樣——解決特別困難的問題總是會有所回報。 我撰寫本書的目的,是幫助其他人學習使用IDA和培養(yǎng)對逆向工程的興趣。我想通過本書為讀者提供一些更加具體的內容,而不是讓大家花幾個小時聽我漫談IDA和各種逆向工程問題。 閱讀本書的方式多種多樣。對逆向工程知之甚少的用戶可以從第1章和第2章開始,了解有關逆向工程和反匯編器的一些信息;對IDA了解不多、希望深入學習的用戶可以從第3章開始,這一章主要介紹IDA的基本布局;第4章則描述如何啟動IDA并加載二進制文件;第5章到第7章介紹IDA的主要界面窗口和基本功能。 對IDA有一定了解的讀者可以從第8章開始閱讀,這一章討論如何使用IDA處理復雜的數據結構,包括C++類;而第9章則介紹IDA交叉引用,它是IDA基于圖形的顯示(也在第9章介紹)的基礎;第10章說明如何在非Windows平臺上(Linux或OS X)運行IDA。 更加高級的IDA用戶可能會發(fā)現(xiàn),第11章到第14章是不錯的起點,主要介紹IDA的高級用法及其自帶的一些工具。第11章簡要說明IDA的一些配置選項;第12章描述IDA的FLIRT/FLAIR技術和相關工具,我們利用它們開發(fā)簽名,并利用這些簽名將庫代碼與應用程序代碼區(qū)分開來;第13章討論IDA類型庫及如何擴展類型庫;而第14章則回答一些常見的問題,說明IDA是否可用于修補二進制文件。 IDA是一款即裝即用的強大工具,可擴展是它的一個最大的優(yōu)點,這些年來,用戶利用這一優(yōu)點讓IDA完成了一些非常有趣的任務。IDA的可擴展性在第15章到第19章討論。第15章介紹IDA的腳本功能,并系統(tǒng)討論IDA的SDK(軟件開發(fā)工具包)提供的編程API;第16章全面介紹SDK;而第17章到第19章則討論插件、文件加載器和處理器模塊。 介紹完IDA的全部功能后,第20章至第23章轉而討論IDA在逆向工程方面更加實際的用法,分析各種編譯器的區(qū)別(第20章),介紹如何使用IDA分析惡意軟件中常見的模糊代碼(第21章),以及如何利用IDA發(fā)現(xiàn)和分析漏洞(第22章)。第23章則介紹這些年來發(fā)布的一些有用的IDA擴展(插件),以此結束這一部分的討論。 最后,第24章至第26章介紹IDA的內置調試器。第24章首先介紹調試器的基本功能;第25章討論使用調試器分析模糊代碼遇到的一些挑戰(zhàn),以及調試器與反匯編器的集成;第26章則討論IDA的遠程調試功能。 本書在很大程度上以IDA 5.2為介紹對象,這主要是因為5.2版與5.1版和5.0版有許多相似之處。Hex-Rays公司非??犊瑸橛脩籼峁┝艘粋€免費版本。IDA免費版是IDA 4.9的一個刪減了部分功能的版本。本書討論的大部分IDA功能也適用于免費版本,附錄A簡要介紹了用戶在使用免費版本時可能遇到的一些不同之處。 首先學習IDA腳本功能,然后逐步學習如何創(chuàng)建編譯插件,這似乎是一個自然的發(fā)展過程。因此,我們在附錄B中全面介紹了每一個IDC函數及其對應的SDK操作。有時候,你可以在IDC函數與SDK函數之間建立起一一對應的關系(盡管這些函數的名稱并不相同);其他情況下,單獨一個IDC函數可能等同于幾個SDK函數調用。附錄B回答了這個問題:“我知道如何用IDC完成某個任務,但是,如何使用插件完成這個任務呢?”附錄B中的信息通過逆向工程IDA內核獲得,根據IDA的非傳統(tǒng)許可協(xié)議,這樣做完全合法。
內容概要
本書一共分為六個部分,以反匯編與逆向工程的基本信息和IDA Pro的背景知識開篇,為讀者奠定基礎,緊接著循序漸進地講解IDA Pro的基本使用、高級使用、擴展功能和它在安全領域的實際應用,最后介紹IDA調試器,一方面讓用戶對IDA Pro有全面深入的了解,另一方面讓讀者掌握IDA Pro在現(xiàn)實中的應用?! ”緯m合IT領域的所有安全工作者閱讀。
作者簡介
Chris EagIe,美國海軍研究生院計算機系副主任、高級講師,著有Gray,4at Hacking,在多種全球性安全會議中發(fā)表過演講。
書籍目錄
第一部分 IDA簡介 第1章 反匯編簡介 第2章 逆向與反匯編工具 第3章 IDA Pro背景知識 第二部分 IDA基本用法 第4章 IDA入門 第5章 IDA數據顯示窗口 第6章 反匯編導航 第7章 反匯編操作 第8章 數據類型與數據結構 第9章 交叉引用與繪圖功能 第10章 IDA的多種面孔 第三部分 IDA高級應用 第11章 定制IDA 第12章 使用FLIRT簽名來識別庫 第13章 擴展IDA的知識 第14章 修補二進制文件及其他IDA限制 第四部分 擴展IDA的功能 第15章 編寫IDC腳本 第16章 IDA軟件開發(fā)工具包 第17章 IDA插件體系結構 第18章 二進制文件與IDA加載器模塊 第19章 IDA處理器模塊 第五部分 實際應用 第20章 編譯器變體 第21章 模糊代碼分析 第22章 漏洞分析 第23章 實用IDA插件 第六部分 IDA調試器 第24章 IDA調試器 第25章 反匯編器/調試器集成 第26章 Linux、OS X平臺的IDA和遠程調試 附錄A 使用IDA 4.9免費版 附錄B IDC/SDK交叉引用 附錄C IDA 5.3的新功能
章節(jié)摘錄
插圖:拿到一本專門介紹IDAPro的書,你很可能急切地想知道書里會講些什么。很明顯,本書以IDA為中心,但我并不希望讀者將其作為IDA Pro用戶手冊。相反,本書旨在將IDA作為推動逆向工程技術討論的工具。你會發(fā)現(xiàn),在分析各種軟件(包括易受攻擊的應用程序和惡意軟件)時,這些技術非常有用。在適當的時候,我將提供在使用IDA時需要遵循的詳細步驟,好讓你執(zhí)行與你手頭的任務有關的特殊操作。因此,我將簡略地介紹IDA的功能,包括最初分析文件時需要執(zhí)行的基本任務,最后討論IDA的高級用法和定制功能(用來解決更具挑戰(zhàn)性的逆向工程問題)。我不會介紹IDA的所有功能。但是,你將發(fā)現(xiàn),在應對逆向工程挑戰(zhàn)時,本書介紹的功能極其有用,這也使得IDA成為你工具箱中最強大的武器。在詳細介紹IDA之前,了解反匯編過程的一些基礎知識,以及其他一些對編譯代碼進行逆向工程的可用工具,會有一定好處。雖然這些工具的功能都不如IDA全面,但它們具備IDA的一部分功能,有助于我們了解IDA的某些功能。本章的剩余部分主要介紹反匯編過程。1.1反匯編理論任何學過編程語言的人都知道,編程語言分為好幾代,下面為那些上課不認真的讀者簡要總結一下??诘谝淮Z言。這些語言是最低級的語言,一般由0和l或某些簡寫編碼(如十六進制碼)組成。只有像Skape這樣的超人才能讀懂它們。由于數據和指令看起來都差不多,人們往往很難將它們區(qū)分開來。因此,這種語言很容易造成混淆。第一代語言也稱為機器語言,有時也叫做字節(jié)碼,而機器語言程序常被稱為二進制文件??诘诙Z言。第二代語言也叫匯編語言,它只是一種脫離了機器語言的查找方式。通常,匯編語言會將具體的位模式或操作碼,與短小且易于記憶的字符序列(即助記符)對應起來。有時候,這些助記符確實有助于程序員記住與它們有關的指令。匯編器是程序員用來將匯編語言程序轉換成能夠執(zhí)行的機器語言的工具。
媒體關注與評論
“它是迄今為止最全面、最準確、最棒的IDA Pro圖書?!? ——Pierre Vandevenne,DataRescue公司的所有人和CEO “我家里有好幾本IDA Pro方面的圖書,但當我遇到Chris Eagle的這本佳作時,如獲至寶,其他所有書都可以拋棄了?!? ——Amazon讀者評論
編輯推薦
《IDA Pro權威指南》:IDA Pro發(fā)行者親自作序推薦,Amazon全五星暢銷圖書,引領你步入IDA Pro和逆向工程的殿堂 。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載