
IDA PRO 7.5版現(xiàn)已發(fā)布!
今天我們很榮幸地宣布發(fā)布IDA PRO 7.5版!加入我們,發(fā)現(xiàn)您的IDA Pro的許多新的功能和改進!
亮點介紹
- 文件夾視圖
在許多IDA標準視圖中都有樹形的文件夾視圖。您可以創(chuàng)建文件夾并在它們之間移動項目。首先,以下視圖包含:
功能和名稱

導入

結構

枚舉類型

本地類型

對于結構和枚舉,樹面板默認顯示,對于其他視圖,可以通過“顯示文件夾”上下文菜單項啟用。
用戶可以創(chuàng)建、重命名和刪除文件夾,并在文件夾之間移動項目。這將有助于在處理大型二進制文件時組織信息。
- MIPS反編譯器
一個新的反編譯器已經(jīng)添加到我們的陣容。IDA支持的任何32位MIPS二進制文件都可以反編譯,包括壓縮編碼。透明且完美地處理可惡的延遲槽。
以下是一些截圖:
Big-endian MIPS32代碼

Little-endian MIPS32碼

MIPS16e代碼

microMIPS代碼

- 用于MIPS和PPC的Lumina:
Lumina函數(shù)現(xiàn)在可用于MIPS和PPC二進制文件。
- iOS/macOS改進
我們已經(jīng)添加了帶有大多數(shù)主要API的類型庫,以及來自macOS和iPhone SDK的附加框架。當與反編譯器配合使用時,它們特別有用。
初始可用類型庫列表

使用CoreFoundation API的x86_64用戶模式代碼示例

使用IOKit類的ARM64內核代碼示例

此外,我們改進了對KTRW調試器的支持。斷點和監(jiān)視點使用相同的Corellium-ARM64配置進行開箱即用。
在反編譯器方面,我們增加了對Atomic ARM64指令的支持,如CAS(compare and swap)、LDADD(atomic add)等。它們從stdatomic.h轉換為相應的C11函數(shù),因此在處理為arm64e編譯的代碼時,應該看到更少的_asm{}塊。
ARM Atomic

其他選定項目
PC:采用Intel CET(控制流強制技術)的ELF二進制文件正變得非常常見,因為默認情況下,Debian會啟用此編譯器選項,其次是Fedora和其他Linux發(fā)行版。我們現(xiàn)在支持這種開箱即用的二進制文件,包括在反編譯程序中。我們還增加了對最近添加到英特爾和AMD處理器的幾個新指令的支持。
Intel CET

ARM:最近針對32位ARM代碼的編譯器傾向于使用MOVW和MOVT指令對來加載32位常量和地址,而不是像過去那樣使用常量池。雖然IDA在將這些對放在一起時已經(jīng)處理了它們,但是高級優(yōu)化可以將這些對分開,從而防止IDA將它們組合起來,發(fā)現(xiàn)完整的值并向目標添加交叉引用。我們已經(jīng)改進了我們的啟發(fā)式方法來處理這種分散的對,并添加了一個選項,這樣分析就可以根據(jù)具體的二進制文件進行調整,或多或少地具有攻擊性。
ARM MOVT

ARM MOVT
ARM MOVT

完整變更列表:
處理器模塊:
- ARC:增加了對ARCv2 EM指令集的支持
- ARM:增加了一個選項,用于控制檢測由分散的MOVW+MOVT指令對加載的32位常量
- ARM:通過延遲的prolog設置改進功能檢測
- MIPS:增加了對multi-GOT二進制文件的支持($gp在二進制文件的不同部分可以有不同的值)
- V850/RH850:不為PIC調用創(chuàng)建函數(shù)(到下一個地址)
- PPC:從e200核(NXP MPC57xx,ST SPC58xx)添加了許多新指令:
- 緩存旁路存儲(lbdcbx lhdcbx lwdcbx lwdcbx stbdcbx sthdcbx stwdcbx dsncb)
- e200z490(AIOP)說明(e_lqw e_stqw e_ldwcb e_ldbrw e_byterevw等)
- MPU指令(mpure、mpuwe、mpusync)
- PC:增加了對prolog分析中endbr指令的支持
- PC:增加了WAITPKG指令的解碼(TPAUSE、UMONITOR和UMWAIT)
- PC:增加了TSX指令的解碼(XRESLDTRK和XSUSLDTRK)
- PC:增加指令的解碼,CLDEMOTE、ENCLV、SERIALIZE
- PC:增加直接存儲指令的解碼(MOVDIRI和MOVDIR64B)
- PC:增加了MCOMMIT和RDPRU指令的解碼(AMD Zen2)
文件格式:
- AMIGA:為AMIGA hunk文件加載程序實現(xiàn)重新調整(由Vladimir Kononovich提供)
- ELF:忽略內部編譯器符號gcc2_compiled
- ELF: pc: 處理用英特爾CET支持編譯的二進制文件中的PLT存根(-fcf protection)
- ELF:接受在文件末尾運行PT_LOAD的文件
- ELF: MIPS:實現(xiàn)的重新定位R_MIPS_GOT_PAGE, R_MIPS_GOT_OFST
- ELF: MIPS:添加對MIPS64復雜重定位的支持
- MACHO:允許用戶配置為新MACHO文件加載的類型庫。
- TDS:增加了對與exe文件連接的TDS文件的支持
安裝程序:
- 默認為Python3;將Python3.8.2與Windows安裝程序捆綁在一起
調試器:
- 調試器:增加了對Bochs 2.6.10的支持
- 調試器:增加了對Zilog Z80處理器的調試支持
- 調試器:gdb:改進多線程程序的調試
- 調試器:ios:將iPhone SE 2添加到已知設備列表/li>
- 調試器:PIN:支持使用PIN 3.13構建pintool
- 調試器:xnu:改進的ktrw支持。斷點/監(jiān)視點/寄存器現(xiàn)在可以使用“Corellium-ARM64”配置在ktrw中按預期工作。不需要其他手動設置。
Kernel / Misc.:
- demangler:為VC++和GCC添加c++20 spaceship和co-await運算符
- 內核:將std::_Xlength_error()添加到不返回函數(shù)的列表中
- Lumina: Lumina功能可用于MIPS和PPC二進制文件
FLIRT / TILS / IDS:
- TIL:引入了新的macosx類型庫,直接從MacOSX.sdk/iPhoneOS.sdk(包括所有Objective-C和C++ Frameworks)。
- TIL:為XNU內核和KEXT二進制文件引入了新的類型庫,直接從XNU源代碼構建。
- FLIRT:為vc1424添加MFC簽名(Visual Studio 2019.4)
- FLIRT:為vc1425添加MFC簽名(Visual Studio 2019.5)
- FLIRT:ICL:為icl200 (Intel C++ 20.0)添加簽名
- FLIRT:ICL:為icl201 (Intel C++ 20.1)添加簽名
- FLIRT:VC:為vc1424添加簽名(Visual Studio 2019.4)
- FLIRT:VC:為vc1425添加簽名(Visual Studio 2019.5)
用戶界面:
- UI:許多IDA視圖現(xiàn)在提供了另一種類似樹的文件夾視圖
- UI:添加操作以搜索寄存器定義或寄存器使用(Shift+Alt+Up、Shift+Alt+Down)
- UI:現(xiàn)在可以從“函數(shù)調用”小部件添加、刪除、啟用和禁用斷點
- UI:“Breakpoints”選擇器現(xiàn)在也在列中報告狀態(tài)(啟用/禁用/未解析),而不是僅通過圖標。
- UI:在會話中,IDA默認情況下會記住并恢復對話框的位置和大?。赏ㄟ^RESTORE_DIALOGS_GEOMETRIES配置)
- UI:debugger:當前線程現(xiàn)在以粗體顯示
- UI:debugger:在關于連接失敗的錯誤消息中包括主機名和端口號
- UI:取消了同步類似視圖的限制(例如,現(xiàn)在可以同步2個idaviews)
- UI:顯示加載過程中加載的文件的文件名
- UI:“create struct from data”:在結構內部使用時,忽略“field_xxx”等偽字段名
- UI:添加了get_synced_group(),以檢索有關同步的小部件的信息。