IDAPro是逆向工程軟件提供商Hex-Rays的旗艦產(chǎn)品。作為一個(gè)交互式可編程反匯編程序和調(diào)試器,IDAPro在不同平臺(tái)上提供了優(yōu)異的質(zhì)量性能,并與許多處理器兼容。IDAPro已成為惡意代碼分析、漏洞研究和商業(yè)現(xiàn)成驗(yàn)證的事實(shí)標(biāo)準(zhǔn)。
IDAPro提供不同類型的許可證:命名許可證、計(jì)算機(jī)許可證、浮動(dòng)許可證和教育許可證,以滿足不同業(yè)務(wù)的規(guī)模和使用需求。
主要功能
用于大量處理器的反匯編模塊。SDK甚至允許您運(yùn)行自定義反匯編程序;
完整和可擴(kuò)展的交互;
可編程:IDA可以使用IDC或IDAPython根據(jù)用戶自己的需求進(jìn)行擴(kuò)展;
開放式插件架構(gòu):外部插件可以擴(kuò)展IDA的功能;
檢索技術(shù)(快速圖書館識(shí)別技術(shù))
代碼繪圖;
Lumina服務(wù)器擁有大量已知功能的元數(shù)據(jù);
多目標(biāo)調(diào)試器
調(diào)試器添加了對(duì)反匯編程序靜態(tài)收集的信息的動(dòng)態(tài)分析;
提供調(diào)試器的所有預(yù)期功能以及更多:“遠(yuǎn)程”功能和跟蹤。遠(yuǎn)程調(diào)試器:適用于Windows、Linux、MacOS X和其他任何組合的機(jī)器;
隨著新的IDA版本的發(fā)布,我們引入了更多的功能和升級(jí)!
像往常一樣,IDA在許多方面都有所改進(jìn),但這一次最重要的特點(diǎn)是引入了全新的IDATeams,這也是主要版本升級(jí)的理由。
IDATeams發(fā)布了
我們一直在努力完成我們的新產(chǎn)品的收尾工作:一套集成的工具,以實(shí)現(xiàn)[逆向]工程師團(tuán)隊(duì)之間的無縫協(xié)作。
受現(xiàn)有最佳版本控制工具的啟發(fā),IDATeams將其關(guān)鍵概念引入IDA數(shù)據(jù)庫和工作流:
修訂控制
更改屬性
擴(kuò)散和合并
我們感到非常驕傲和興奮通過IDATeams所能完成的,希望您能欣賞它的潛力。但我們不會(huì)就此止步:我們對(duì)下一個(gè)版本已經(jīng)有了很好的想法!
iOS16 dyld共享緩存支持
再一次,Apple修改了其移動(dòng)操作系統(tǒng)上系統(tǒng)文件的內(nèi)部格式,以提高性能和內(nèi)存使用率,因此我們更新了IDA以支持新的調(diào)整。
功能概述
Apple在最近的iOS版本上使用的另一個(gè)新技巧是概述功能。這是一種代碼大小優(yōu)化,編譯器將多個(gè)函數(shù)中使用的公共指令序列提取到一個(gè)新的偽函數(shù)中,然后從多個(gè)位置“調(diào)用”。
這種行為往往會(huì)使反編譯的偽代碼變得丑陋,尤其是當(dāng)概述的函數(shù)使用來自父函數(shù)的任意寄存器或堆棧變量時(shí)?,F(xiàn)在,您可以用一個(gè)特殊屬性標(biāo)記這些函數(shù),反編譯的代碼看起來會(huì)更好。
例如,下面是一個(gè)經(jīng)過優(yōu)化編譯的文件片段:
在初始偽代碼中,我們可以看到對(duì)編譯器生成的函數(shù)NN片段的顯式調(diào)用,以及一些用橙色標(biāo)記的變量,因?yàn)榉淳幾g器認(rèn)為它們被調(diào)用破壞(這是對(duì)常規(guī)函數(shù)的調(diào)用)。
在用“outline”屬性標(biāo)記這些偽函數(shù)并刷新偽代碼后,反編譯程序?qū)⑺袃?nèi)容都排成一行,不再有橙色變量:
Golang1.18
新版本的語言改變了元數(shù)據(jù)的布局。新的IDA版本可以解析它并很好地恢復(fù)函數(shù)名。
例如,在IDA7.7中有一個(gè)剝離的golang1.18二進(jìn)制:
和IDA8.0中相同的二進(jìn)制文件:
?
ARC反編譯程序
ARC處理器用于許多嵌入式設(shè)備,如SSD驅(qū)動(dòng)器或Wi-Fi芯片組。直到幾年前,它還是臭名昭著的英特爾ME的核心。新的反編譯器支持IDA當(dāng)前支持的所有ARC指令集變體:經(jīng)典32位ISA、32/16位ARCompact和新的ARCv2。即時(shí)支持延遲槽、條件指令和零開銷循環(huán)。
不再使用Python2
Python2.7支持已經(jīng)結(jié)束兩年多了,是時(shí)候放手了。IDA8.0將只支持Python3.x,包括最新的3.10(Windowsinstaller包括Python3.10.5)。
由于functionfinder插件(patfind),固件分析效果更好
固件二進(jìn)制文件通常沒有任何符號(hào)或其他元數(shù)據(jù)來幫助IDA在未標(biāo)記的加載數(shù)據(jù)中查找代碼,因此用戶必須手動(dòng)執(zhí)行。在新版本中,我們添加了一個(gè)插件,該插件利用了Ghidra中使用的模式格式(具有較小的擴(kuò)展)。默認(rèn)情況下,該插件對(duì)二進(jìn)制和類似二進(jìn)制的格式啟用,并幫助IDA自動(dòng)發(fā)現(xiàn)更多代碼。也可以手動(dòng)調(diào)用普通結(jié)構(gòu)化文件,以查找其他未引用的代碼。
初始自動(dòng)分析后發(fā)現(xiàn)的函數(shù)數(shù)與默認(rèn)設(shè)置的比較:
文件類型 | IDA7.7 | IDA8.0 |
CortexM0固件(8KB) | 0 | 59 |
ARM9固件(23KB) | 0 | 97 |
ARM11固件(300KB) | 84 | 1697 |
PowerPC固件(2MB) | 0 | 2223 |
FLAIR圖案生成器(makepat)
FLAIR工具包可供所有IDAPro客戶使用,允許從靜態(tài)庫中創(chuàng)建調(diào)情簽名。然而,這樣的庫并不總是可用的,有時(shí)您所擁有的只是最終鏈接的二進(jìn)制文件。makepat插件支持為任意IDA數(shù)據(jù)庫中的函數(shù)創(chuàng)建.pat文件。它使用為L(zhǎng)umina添加的功能來標(biāo)記圖案中的可變字節(jié)。然后可以使用sigmake將.pat編譯為簽名文件,并應(yīng)用于其他文件
什么是IDATeams?
IDATeams是將IDA進(jìn)化為一種新模型,讓分析師團(tuán)隊(duì)能夠使用強(qiáng)大的客戶機(jī)-服務(wù)器架構(gòu)范式協(xié)同工作:
我們將位于中心的服務(wù)器稱為Vault服務(wù)器,它是存儲(chǔ)區(qū)域,用于保存所有文件并跟蹤修改。該服務(wù)器是跨項(xiàng)目共享進(jìn)度的中心點(diǎn)。
每次參與者通過服務(wù)器將其更改發(fā)布到團(tuán)隊(duì)的其他成員時(shí),更改都會(huì)被記住。這樣,就可以讓團(tuán)隊(duì)成員在同一個(gè)項(xiàng)目上協(xié)同工作,而不會(huì)有數(shù)據(jù)丟失、多個(gè)相互競(jìng)爭(zhēng)的“不同步”版本等風(fēng)險(xiǎn)。。。
除了新的Vault服務(wù)器外,我們還改進(jìn)了IDA,使其可以作為一種工具,在同一個(gè).idb文件的不同細(xì)化(即“修訂”)之間進(jìn)行比較。有了這個(gè)新功能,任何人都可以看到每個(gè)版本都引入了哪些更改:
它是如何工作的?
IDA的一般工作流程保持不變:用戶可以像以前一樣在IDA中工作(在線或離線)。
但多虧了IDATeams的架構(gòu),他們現(xiàn)在有了更好的工具來向團(tuán)隊(duì)的其他成員發(fā)布他們的發(fā)現(xiàn)(以及檢索其他成員所做的更改并從中受益)
IDATeams是HexRays對(duì)逆向工程團(tuán)隊(duì)中日益增長(zhǎng)的協(xié)作需求的回應(yīng)。以下是幾個(gè)關(guān)鍵好處:
無縫集成
IDATeams是對(duì)IDAPro的改進(jìn)版本,只為其添加了功能。在大多數(shù)情況下,現(xiàn)有工作流將保持不變。
輕松協(xié)作
對(duì)IDA的改進(jìn),以及一套新的工具,是處理大型項(xiàng)目的無價(jià)補(bǔ)充。
并行化逆向工程
IDATeams允許您跨多個(gè)用戶無縫地共享逆向工程任務(wù)(可能同時(shí)工作)。
跟蹤變化
討論、回顧甚至糾正以前的更改。Vault服務(wù)器保留了一個(gè)記錄誰做了什么(以及什么時(shí)候做的)的賬本,為有時(shí)會(huì)令人困惑的上下文提供了一些線索。
現(xiàn)場(chǎng)
組織通過托管IDA團(tuán)隊(duì)來保留其所有IP。此外,它將與現(xiàn)有IT基礎(chǔ)架構(gòu)(和備份策略)無縫集成。Vault服務(wù)器可以托管在任何Linux服務(wù)器上,為您提供了廣泛的選擇,以保持?jǐn)?shù)據(jù)的私密性和可靠的可訪問性。
在線或離線
IDA團(tuán)隊(duì)服務(wù)器托管在本地,并不意味著用戶必須親自參與工作:完全可以在不在家的情況下,在沒有互聯(lián)網(wǎng)連接的情況下(例如,在飛機(jī)上)完成所有工作,并在訪問服務(wù)器后立即使其可用。
輕松解決沖突
當(dāng)兩個(gè)(或更多)分析師修改項(xiàng)目的同一部分時(shí),可能會(huì)出現(xiàn)沖突。在這里,您也介紹了IDATeams:新特性帶來了一組解決這些問題的策略。
審核編輯:劉清
-
處理器
+關(guān)注
關(guān)注
68文章
19432瀏覽量
231261 -
可編程
+關(guān)注
關(guān)注
2文章
875瀏覽量
39952 -
調(diào)試器
+關(guān)注
關(guān)注
1文章
306瀏覽量
23842
原文標(biāo)題:IDA 8.0---先進(jìn)的二進(jìn)制代碼分析工具
文章出處:【微信號(hào):哲想軟件,微信公眾號(hào):哲想軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論