IDA PRO 7.5版现已发布!
今天我们很荣幸地宣布发布IDA PRO 7.5版!加入我们,发现您的IDA Pro的许多新的功能和改进!
亮点介绍
- 文件夹视图
在许多IDA标准视图中都有树形的文件夹视图。您可以创建文件夹并在它们之间移动项目。首先,以下视图包含:
功能和名称
导入
结构
枚举类型
本地类型
对于结构和枚举,树面板默认显示,对于其他视图,可以通过“显示文件夹”上下文菜单项启用。
用户可以创建、重命名和删除文件夹,并在文件夹之间移动项目。这将有助于在处理大型二进制文件时组织信息。
- MIPS反编译器
一个新的反编译器已经添加到我们的阵容。IDA支持的任何32位MIPS二进制文件都可以反编译,包括压缩编码。透明且完美地处理可恶的延迟槽。
以下是一些截图:
Big-endian MIPS32代码
Little-endian MIPS32码
MIPS16e代码
microMIPS代码
- 用于MIPS和PPC的Lumina:
Lumina函数现在可用于MIPS和PPC二进制文件。
- iOS/macOS改进
我们已经添加了带有大多数主要API的类型库,以及来自macOS和iPhone SDK的附加框架。当与反编译器配合使用时,它们特别有用。
初始可用类型库列表
使用CoreFoundation API的x86_64用户模式代码示例
使用IOKit类的ARM64内核代码示例
此外,我们改进了对KTRW调试器的支持。断点和监视点使用相同的Corellium-ARM64配置进行开箱即用。
在反编译器方面,我们增加了对Atomic ARM64指令的支持,如CAS(compare and swap)、LDADD(atomic add)等。它们从stdatomic.h转换为相应的C11函数,因此在处理为arm64e编译的代码时,应该看到更少的_asm{}块。
ARM Atomic
其他选定项目
PC:采用Intel CET(控制流强制技术)的ELF二进制文件正变得非常常见,因为默认情况下,Debian会启用此编译器选项,其次是Fedora和其他Linux发行版。我们现在支持这种开箱即用的二进制文件,包括在反编译程序中。我们还增加了对最近添加到英特尔和AMD处理器的几个新指令的支持。
Intel CET
ARM:最近针对32位ARM代码的编译器倾向于使用MOVW和MOVT指令对来加载32位常量和地址,而不是像过去那样使用常量池。虽然IDA在将这些对放在一起时已经处理了它们,但是高级优化可以将这些对分开,从而防止IDA将它们组合起来,发现完整的值并向目标添加交叉引用。我们已经改进了我们的启发式方法来处理这种分散的对,并添加了一个选项,这样分析就可以根据具体的二进制文件进行调整,或多或少地具有攻击性。
ARM MOVT
ARM MOVT
ARM MOVT
完整变更列表:
处理器模块:
- ARC:增加了对ARCv2 EM指令集的支持
- ARM:增加了一个选项,用于控制检测由分散的MOVW+MOVT指令对加载的32位常量
- ARM:通过延迟的prolog设置改进功能检测
- MIPS:增加了对multi-GOT二进制文件的支持($gp在二进制文件的不同部分可以有不同的值)
- V850/RH850:不为PIC调用创建函数(到下一个地址)
- 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文件加载程序实现重新调整(由Vladimir Kononovich提供)
- ELF:忽略内部编译器符号gcc2_compiled
- ELF: pc: 处理用英特尔CET支持编译的二进制文件中的PLT存根(-fcf protection)
- ELF:接受在文件末尾运行PT_LOAD的文件
- ELF: MIPS:实现的重新定位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支持。断点/监视点/寄存器现在可以使用“Corellium-ARM64”配置在ktrw中按预期工作。不需要其他手动设置。
Kernel / Misc.:
- demangler:为VC++和GCC添加c++20 spaceship和co-await运算符
- 内核:将std::_Xlength_error()添加到不返回函数的列表中
- 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视图现在提供了另一种类似树的文件夹视图
- UI:添加操作以搜索寄存器定义或寄存器使用(Shift+Alt+Up、Shift+Alt+Down)
- UI:现在可以从“函数调用”小部件添加、删除、启用和禁用断点
- UI:“Breakpoints”选择器现在也在列中报告状态(启用/禁用/未解析),而不是仅通过图标。
- UI:在会话中,IDA默认情况下会记住并恢复对话框的位置和大小(可通过RESTORE_DIALOGS_GEOMETRIES配置)
- UI:debugger:当前线程现在以粗体显示
- UI:debugger:在关于连接失败的错误消息中包括主机名和端口号
- UI:取消了同步类似视图的限制(例如,现在可以同步2个idaviews)
- UI:显示加载过程中加载的文件的文件名
- UI:“create struct from data”:在结构内部使用时,忽略“field_xxx”等伪字段名
- UI:添加了get_synced_group(),以检索有关同步的小部件的信息。