產(chǎn)品介紹
交互式反匯編器專業(yè)版(Interactive Disassembler Professional),人們常稱其為IDA Pro,或簡稱為IDA。是最棒的一個靜態(tài)反編譯軟件,為眾多0day世界的成員和ShellCode安全分析人士不可缺少的利器!IDA Pro是一款交互式的,可編程的,可擴(kuò)展的,多處理器的,交叉Windows或Linux WinCE MacOS平臺主機(jī)來分析程序, 被公認(rèn)為最好的花錢可以買到的逆向工程利器。IDA Pro已經(jīng)成為事實上的分析敵意代碼的標(biāo)準(zhǔn)并讓其自身迅速成為攻擊研究領(lǐng)域的重要工具。它支持?jǐn)?shù)十種CPU指令集其中包括Intel x86,x64,MIPS,PowerPC,ARM,Z80,68000,c8051等等。
反盜版策略
IDA是Hex-Rays公司的旗艦產(chǎn)品。因此,他們對于未經(jīng)授權(quán)就使用IDA的做法深惡痛絕。過去,該公司發(fā)現(xiàn),盜版IDA的發(fā)布與公司銷售量的下滑有著直接的因果關(guān)系。為此,IDA的前發(fā)行公司DataRrscus甚至將盜版者的姓名張貼在他的“恥辱堂”(Hall of Shame)中。為打擊盜版,IDA采用了幾項反盜版技術(shù),并實施了許可限制。
用戶需要了解的第一種技術(shù)是:每一份IDA都帶有水印,以將它與購買者一對一地對應(yīng)起來。如果一份IDA出現(xiàn)在盜版軟件站中,Hex-Rays就能夠通過水印追蹤到購買者,并將其列入銷售黑名單。我們常常可以在Hex-Rays的IDA支持論壇上發(fā)現(xiàn)有關(guān)IDA 的“泄露”版本的討論。
為實施許可策略,IDA采用的另一種技術(shù),是掃描在局域網(wǎng)中運行的其他IDA程序。例如,Windows版本的IDA啟動后,它會在端口23945上廣播一個UDP包,并等待響應(yīng),看相同子網(wǎng)中是否有其他使用相同許可證密鑰的IDA實例在運行。然后,IDA會將得到的響應(yīng)數(shù)量與使用該許可證的用戶數(shù)量進(jìn)行比較,如果發(fā)現(xiàn)網(wǎng)絡(luò)中存在過多的IDA實例,IDA會拒絕啟動,但是要注意,用戶可以在一臺計算機(jī)上使用相同的許可證運行多個IDA實例。
IDA實施許可策略的最后一種方法,是使用密鑰文件將每一名購買者與產(chǎn)品聯(lián)系起來。在啟動時,IDA會搜索一個有效的ida.key文件。如果無法定位有效地密鑰文件,IDA就會立即關(guān)閉。密鑰文件還用于用戶升級IDA的資格?;旧希?/span>ida.key文件就像是用戶的購買收據(jù),要想在將來獲得升級資格,用戶必須保管好這個文件。
許可證
IDA有兩種許可證。一種是已命名許可證,與某一特定的用戶有關(guān),可安裝到該用戶使用的任意多個計算機(jī)上。另一種是計算機(jī)許可證,與某一臺特定的計算機(jī)有關(guān),任何使用該計算機(jī)的用戶都可以使用這種許可證,但一次只能允許一名用戶使用該許可證。注意,雖然已命名許可證可以讓你在任意多臺計算機(jī)上安裝IDA軟件,但是只有你才能運行這些IDA軟件。而且,對于單個許可證,在某一給定的時刻,IDA只能在其中一臺計算機(jī)上運行。
說明 與許多其他專有軟件的許可證不同,IDA的許可證特別賦予了用戶對IDA進(jìn)行逆向工程的權(quán)利。
升級IDA
發(fā)布新版本的IDA后,Hex-RAYS通常會在IDA網(wǎng)站上公布升級鏈接和升級過程中的要求,該要求一般包括升級所適用的產(chǎn)品購買日期。一般情況下,在升級過程中,用戶必須向Hex-Rays提交ida.key文件。然后,Hex-Rays會驗證用戶的密鑰,并提供如何獲得升級版本的詳細(xì)信息。如果你發(fā)現(xiàn)你的IDA版本過低,沒有升級資格,請記得利用Hex-Rays向過期的用戶提供的折扣升級價格。
如果不小心丟失密鑰文件,未授權(quán)用戶可能會假冒你提出升級請求,導(dǎo)致你無法升級IDA.
最后,強(qiáng)烈建議在升級IDA時備份現(xiàn)有的IDA版本,或?qū)⑸壈姹景惭b到一個完全不同的目錄,以避免丟失你修改的任何配置文件。為了恢復(fù)你之前所做的任何修改,你可能需要編輯升級版本中的相應(yīng)文件。同樣,你還需要重新編譯或以替他形式獲得新版的IDA 定制插件。
用戶界面
IDA從MS-DOS繼承的特性仍然十分明顯。無論使用哪一種界面(文本界面或GUI),IDA都大量用到熱鍵。雖然這并非壞事,但是,如果你想當(dāng)然地認(rèn)為自己正使用文本輸入模式,并且發(fā)現(xiàn)幾乎每一次點擊都會導(dǎo)致相當(dāng)意外的后果,那就說明IDA執(zhí)行了某種熱鍵操作。例如,在使用GUI時,如果你定位光標(biāo)以進(jìn)行修改,并且希望你輸入的內(nèi)容全部出現(xiàn)在光標(biāo)位置,這是就可能會出現(xiàn)令人意外的情況(IDA可不像字處理程序)。
從數(shù)據(jù)輸入的角度看,IDA通過對話框接受所有輸入。因此,如果你希望在IDA中輸入任何數(shù)據(jù),則必須調(diào)出輸入數(shù)據(jù)的對話框。
最后,需要記住的是:IDA不提供撤銷功能,因為你根本找不到。同樣,你也無法找到命令歷史記錄列表,以查明你剛剛執(zhí)行的操作。
如果你是一名非Windows用戶,并且希望使用IDA的GUI界面,基本上,你有兩種選擇。Linux用戶可以考慮使用WINE。據(jù)稱,IDA可以在WINE下成功運行。就第二個選擇,使用主機(jī)操作系統(tǒng)只的虛擬軟件,在Windows虛擬機(jī)中運行IDA。無論采用哪一種選項,都需要運行IDA的Windows版本。因此,如果選擇使用IDA的內(nèi)置調(diào)試器進(jìn)行本地調(diào)試(下對于遠(yuǎn)程調(diào)試),你只能調(diào)試Windows可執(zhí)行文件。