IDA:7.3版有什么新变化?

亮点

欢迎使用IDA 7.3! 我们很高兴宣布IDA的新版本已经发布! 新功能肯定会令我们所有的用户满意。

  • 让我们从最明显的新功能开始:现在IDA可以使用CSS文件进行完全配置,并且打开即支持黑暗模式(基于非常流行的IDASkins黑暗主题)。下面是一张必看的截图:

  • 在更深层次的东西中,我们来介绍一下苹果’的XNU在x64(macOS)和ARM64(iOS)上的内核调试器。 由于苹果不提供对其设备上硬件的低级访问,我们的iOS内核调试器依赖于Corellium模拟器。这是一个独特的机会,以一个简单和互动的方式调试iOS内核。根据我们的经验,Corellium是惊人的,非常容易使用。 结合对iOS/macOS内核缓存的改进支持,这些新功能使得许多新的分析变得可行:

    XNU调试器也可以使用VMWare Fusion GDB stub来调试x64上的OSX:

    你也可以调试启动过程中的UEFI固件部分,甚至是自定义UEFI模块的源码级调试。 请查看我们的XNU内核调试指南以了解更多关于此功能的细节。

  • 另一个与调试器相关的消息是快速变基. 由于ASLR的广泛使用,每次将进程加载到新地址中,并且IDA需要调整数据库:将所有段移动到操作系统分配给它们的地址。 对于大型数据库而言,这是一个缓慢的过程,实际上可能要花费数小时。

    基于 Compiling by xkcd, 根据 CC BY-NC 2.5许可, Hex-Rays修改.
    在 IDA 7.3 中,我们实现了另一种重定基的方法,它的速度快了40 倍而且通常只需要几秒钟。您不再有借口在每次开始一个新的调试会话时喝咖啡休息。这使得我们的调试器使用起来更加愉快😉。

  • 这次我们为PowerPC 64位添加了一个反编译器。我们将免费为所有拥有激活的PowerPC 32位反编译器的用户免费提供它。 让我们给您看一个简短的例子。 此汇编文本:

    转换为:

    就像我们其他所有的反编译器一样,它可以产生非常漂亮的文本,不需要多余的变量或投稿,几乎不需要用户的帮助。

  • 在IDA 7.2中,我们发布了针对C++的反编译器Microcode API,它允许在我们的反编译器引擎之上实现自定义分析和优化步骤。然而,我们的大多数用户更喜欢Python而不是C++,所以由于流行的需求,我们为它添加了Python绑定。现在,你可以创建自定义的优化步骤或分析通道,而不需要一行C++。就像任何一个首次发布的版本一样,它必然会有一些粗糙的边缘,所以如果在使用新绑定时遇到困难,我们的技术支持会随时为您提供帮助。为了帮助您入门,我们为之前发布的一些C++微代码插件提供了Python版本:

  • 我们的一些用户表示对同步查看反汇编列表和反编译器输出感兴趣。这个功能实际上在以前的版本中已经有了,但我们抓住机会对其进行了改进:现在相应的行都被着色了,而且更容易将汇编指令与伪代码匹配起来:

    然而,在尝试了一段时间的窗口安排后,我们决定保持默认行为不变。根据我们的经验,我们的反编译器产生的伪代码通常足以理解代码。在极少数情况下,当需要查阅反汇编列表时,只需按一下Tab键就足以在两个视图之间切换,而不是用分割视图占用宝贵的屏幕空间。

    有兴趣的用户可以玩玩hexrays.cfg中的PSEUDOCODE_DOCKPOS/PSEUDOCODE_SYNCED参数。

  • 最后,IDA 7.3引入了期待已久的撤销功能。过去我们不愿意实现它,因为它需要大量的源代码重构。其次,它的代价是分析速度更慢(这就是为什么在初始自动分析时可能会被禁用),更复杂的代码库,以及可能存在的更多我们尚未发现的缺陷。但希望我们的测试套件能抓住大部分的错误。

    毫无疑问,即使是IDA资深人士也将赞赏撤消功能。 对于数据库相关的事情,这是一次真正的旅行。 如果用户执行了一些更改(例如,创建一个函数),然后改变了主意,则对数据库的所有修改将被回滚,包括由任何第三方插件引起的副作用。 一方面,这意味着撤消是一件实事,但另一方面,这意味着撤消将对内存和CPU消耗产生不利影响。 希望拥有最高速度的硬核用户可以在配置文件或菜单中将其禁用。 要了解有关撤消(及其对插件的影响)的信息,请点击此链接。

    请继续关注,将来还会有更多功能!

完整的变更清单

  • 处理器模块
    • + 6812: 改进堆栈指针跟踪(如处理std #N,-sp等指令)
    • + 6812: 在堆栈访问时自动创建堆栈变量
    • + ARC: 添加一个配置文件,其中包含ARC4和ARCompact的辅助寄存器定义,并在反汇编LR和SR指令时使用它们
    • + ARC: 检测并处理对编译器Millicode thunk的调用
    • + ARC: 支持开关变化,使用单独的指令来缩放偏移表索引,而不是缩放加载
    • + ARM: 支持CRC32和CRC32C A64指令
    • + ARM: 支持新的ARMv8-M指令(安全扩展,加载获取/存储释放,独占加载/存储等)
    • + ARM: 处理最新的iOS内核中使用的A64开关版本(带有额外的CSEL指令)
    • + ARM: 解码具有NV(从不)条件的UND操作码(用于golang二进制文件)
    • + PC: 支持IBM Visual Age C ++ _Optlink调用约定(用于32位OS / 2二进制文件)
    • + PC: 改进了x64文件的功能检测
    • + PPC: 解码Power ISA 3.0格式的tlbie / tlbiel / slbia指令; 添加了ISA 3.0指令slbieg,slbiag,slbsync
    • + ST9: 检测并标记编译器生成的切换模式
    • + ST9: 正确处理段间调用和跳转
    • + ST9: 在加载时将二进制输入文件拆分为64KB的段
    • + TRICORE: 支持64位数据项(使用“.dword”指令)
    • + TRICORE: 增加了Tricore 1.6.2 (AURIX 2G)的使用说明
    • + TRICORE: 跟踪寄存器值时解析从代码段加载的32位常量
    • + MC68K: 将陷阱指令中的crefs添加到陷阱处理程序(仅适用于二进制文件格式)
    • + MC68K: 增加了对向量表的支持
    • + PIC16: 解码ICD指令BREAK,URUN,SSTEP和FEX
    • + PIC16: 根据MPLAB XC16汇编的文字的固定格式 手册
    • + UI: 将“Enable Macros”选项移至ARM、MIPS、PPC、SPARC的通用内核选项3中
  • 文件格式
    • + COFF: 添加对相对重定位到旧COFF386文件中的外部符号的支持
    • + COFF: 加载COFF调试信息
    • + DSCU: 允许用户从iOS13 dyldcaches加载__OBJC_RO / __ OBJC_RW段
    • + ELF (ARM/Android): 在正在加载的文件中检测到JNI函数时,将自动加载具有JNI类型的类型库
    • + ELF (PPC): 当.opd中的所有函数具有相同的TOC地址时,设置全局TOC
    • + MACHO: 允许用户从XNU kernelcache加载单个kext
    • + DWARF: 对于XNU内核缓存,允许用户从KDK批量加载所有DWARF信息
    • + DWARF: 对于XNU内核缓存,允许用户手动加载预链接的KEXT的DWARF信息
    • + HEX: 支持英特尔HEX记录5(ARM扩展起始地址)
    • + PE: 检测错误的.pdata函数条目,并且不要在加载时使用它们创建函数
    • + PE: 识别‘MTOC’调试CV签名(用于Apple EFI模块)。
    • + PSX: 设置默认数据段以使用户更容易创建偏移量
  • 调试器
    • +远程XNU内核调试器:VMWare(x64)和Corellium(ARM64)支持gdbserver
    • +添加了对YMM寄存器的支持(Windows,Linux和Mac调试器)
    • + iOS:添加了DISABLE_DYLD_NOTIFY配置选项,以加快DYLD缓存的调试速度
  • 内核/杂项
    • + 添加了更多行以显示所有操作码字节,如果它们的数量超过配置选项OPCODE_BYTES
    • + IDA现在维护对枚举的外部参照
    • + 为x64添加了NTAPI类型库
    • + 在Visual Studio 14.15.26726和Windows SDK 10.0.17134.0中添加了mssdk64.til
    • + 使用Visual Studio 14.15.26726和Windows SDK 10.0.17134.0更新了mssdk.til
    • + 使用Visual Studio 14.15.26726和Windows SDK 10.0.17763.0更新了mssdk.til
    • + 使用Visual Studio 14.15.26726和Windows Driver Kit版本1809更新了ntddk.til
    • + 添加了对带参数的预定义宏的支持(ida.cfg中的PREDEFINED_MACROS)
    • + lumina: 添加了将功能状态恢复为应用Lumina提供的信息之前的状态的功能
    • + 安装程序:平台之间的安装程序更加一致,默认情况下,不同版本安装在不同目录中; macOS安装程序现在是64位应用程序
    • + 安装程序:独立的反编译器现在在Linux和macOS上具有安装程序
    • + FLIRT: 为vc1420添加了MFC签名(Visual Studio 2019)
    • + BC:添加了xe103的签名(RAD Studio 10.3 Rio)
    • + FLIRT: ICL: 添加了icl191的签名(Intel C ++ 19.1)
    • + FLIRT: ICL: 添加了icl193的签名(Intel C ++ 19.3)
    • + FLIRT: ICL: 添加了icl191的签名(Intel C ++ 19.1)
    • + FLIRT: VC: 添加了vc1416的签名(Visual Studio 2017.9)
    • + FLIRT: VC: 为vc1420(Visual Studio 2019)和vc1421(Visual Studio 2019.1)添加了签名
    • + FLIRT: VC: 为vc1421添加了MFC签名(Visual Studio 2019.1)
    • + PELF: 添加对R_X86_64_GOTPC32和更多x86_64重定位的支持
  • SWIFT
    • + 引入了专门用于完善Swift二进制文件分析的插件
    • + 添加了对分解版本Swift 4和更高版本名称的支持
    • + 允许用户指定自定义libSwiftDemangle的路径
    • + 在Swift 4异常处理的情况下改进了伪代码生成
  • 用户界面
    • 现在可以完全使用CSS设置IDA的样式(包括列表颜色)
    • IDA现在允许您从颜色对话框中选择主题
    • IDA现在为当前行使用可识别的覆盖色
    • 断点管理:“移动到群组”动作可通过拆解视图获得
    • ‘断点’窗口现在为绝对断点提供了一个人性化的位置名称及其地址
    • 您可以通过“Remove Function tail…”命令一次从多个父函数中分离出一个函数尾巴
    • 快捷键编辑器:增加了记录快捷键的功能(除了手动编辑快捷键)
    • 在调试期间,现在可以使用语法“module_name[+-off]”跳转到一个位置
    • 表格视图现在可以让用户隐藏/显示单个列
    • 为ui_get_custom_viewer_hint添加关键字HIGHLIGHT、CAPTION
    • create_menu()现在提供了更精细的菜单/子菜单创建控制
  • 脚本和SDK
    • + IDAPython: IDP_Hooks.ev_func_bounds()不可用
    • + IDAPython: 添加了一个示例,显示了如何使用ida_hexrays.modify_user_lvars()
    • + IDAPython:现在,processor_t实例继承了IDP_Hooks和IDB_Hooks,并且可以实现这些类支持的每个回调方法
    • + IDAPython: 提供一个默认的‘sys.displayhook’,根据当前处理器的默认打印格式打印数字(int,long)
    • + IDAPython: support for “from __future__ import” statements in breakpoint conditions (among others)
    • + IDAPython: 使用‘sys.displayhook’来显示通过CLI评估的代码结果
    • + SDK: 增加了 auto_wait_range()
    • + SDK: 为set_name()增加了新的位SN_DELTAIL,以自动删除阻碍项目
    • + SDK: 添加了 soff_to_fpoff() 来将结构偏移量转换为 fp 相关偏移量
  • 反编译器
    • + 很多细微的调整和改进详情(见 比较页面)
    • + 增加了一个新的规则IF-13:v=expr;if(v)…=>if(expr)…
    • + 增加了一个规则来转换 if(cnd)return 1;return 0; => return cnd;
    • + 增加了checkout_hexrays_license()来提前检查浮动反编译器的许可
    • + 增加了对“pcmpeqX x,x”的支持,它可以存储-1到x的数据
    • + 增加对可变尺寸结构的支持
    • + 更好地处理对函数的条件跳转(减少跳出)
    • + 改善do-while循环的输出
    • + 删除了多余的 enum->int casts
    • + 现在可以在完全自动分析结束前对单个函数进行反编译
    • + 当<Tab>bing创建一个新的伪码视图时,可以将其配置为与反汇编视图同步(hexrays.cfg中的PSEUDOCODE_SYNCED)
    • + 实现了“结构偏移”本地类型的选择器
    • + PPC: 增加了 fsqrt[s], frsqrte[s], fre[s] 指令的内在特征
  • 漏洞修复
    • 漏洞修复:调试器:在调试过程中将鼠标悬停在YMM寄存器操作数上可能会显示警告
    • 漏洞修复:调试器:gdb:在不支持线程的gdb存根上调试可能会失败
    • 漏洞修复:调试器: gdb: 踩过函数调用会导致视图重新居中,让人觉得我们在另一个地方
    • 漏洞修复:调试器:除非明确选择设备,否则iOS调试器将无法运行
    • 漏洞修复:调试器: iOS调试器无法检索iOS 13的进程列表
    • 漏洞修复:调试器:OSX:库加载通知在OSX 10.15的Mac调试器中被破坏
    • 漏洞修复:调试器:OSX:内存断点在OSX 10.15的Mac调试器中被破坏
    • 漏洞修复:调试器:指令追踪可以在clone()syscall后停止(linux)
    • 漏洞修复:调试器:当win64调试器处于活动状态时,引用的数据内存地址计算不正确
    • 漏洞修复:DWARF:压缩的DWARF部分不能总是被使用
    • 漏洞修复:DWARF:由于GCC 4.8.1位面信息的错误,IDA可能会过早停止
    • 漏洞修复:DWARF:当检索‘_Bool’信息时,IDA检索“Locals”信息的类型会失败
    • 漏洞修复:DWARF:IDA会错误计算一些结构的大小
    • 漏洞修复:DWARF:插件可能无法从FreePascal创建的DWARF信息中创建类型
    • 漏洞修复:DWARF:插件在解析具有DW_AT_GNU_vector标志的数组类型时可能失败
    • 漏洞修复:DWARF:该插件会对一些FreePascal结构创建不良类型
    • 漏洞修复:DWARF:clang产生的调试信息被认为是与visual studio兼容的,实际上它与gcc兼容
    • 漏洞修复:DWARF:当加载dwarf信息时,ida可能会产生interr 822
    • 漏洞修复:DWARF:将多个DWARF文件加载到同一个IDB中可能导致崩溃
    • 漏洞修复:DWARF:当远程调试时,当远程文件有压缩的调试部分时,检索源级调试信息会失败
    • 漏洞修复:DWARF:插件无法正确处理模块卸载
    • 漏洞修复:FLAIR:pmacho将无法解析一个.a归档文件,并有一堆“警告。无法解析Mach-O header”消息
    • 漏洞修复:IDAPython.IDDA可能会在一个‘ida_kernwin.Form.FormChangeCb’控件不是ida_kernwin.Form中的第一个项目时崩溃
    • 漏洞修复:IDAPython.IDDA在调用选项-编译器...菜单时,如果安装了使用IDP_Hooks的插件,可能会崩溃
    • 漏洞修复:IDAPython:如果Hexrays_Hooks.create_hint()返回‘2’(指示反编译器附加自己的提示),而反编译器此时没有产生任何提示,IDA可能会崩溃
    • 漏洞修复: IDAPython: ida_hexrays.decompile()引发的DecompilationFailure无法通过默认的__str__()格式化显示正确的细节
    • 漏洞修复:IDAPython:将Unicode对象转换为IDC值会导致IDA崩溃
    • 漏洞修复: IDAPython: ida_hexrays.casm_t没有继承本应继承ida_pro.eavec_t的特性
    • 漏洞修复: IDAPython: ida_registry.reg_read_strlist()无法使用
    • 漏洞修复: IDAPython: ida_typeinf.enum_type_data_t没有作为一个向量暴露出来
    • 漏洞修复:IDAPython:idautils.Heads(0,0)会返回整个数据库的头,而不是一个空列表
    • 漏洞修复: IDAPython: idc.py: bw-compat AskIdent()引用了一个未知的‘HINT_IDENT’变量
    • 漏洞修复:IDAPython:在ida64.exe中无法将一个值列表转换为eavec_t
    • 漏洞修复:IDAPython:无法迭代screen_graph_selection_t items
    • 漏洞修复:IDAPython:NW_CLOSEIDB的notify_when()从未被触发
    • 漏洞修复: IDAPython: 旧式回调(由 install_hexrays_callback()安装)在发生interr时被破坏
    • 漏洞修复:IDAPython:在Windows上,ida_name.get_name_value()会截断高于0xFFFFFFFF的地址
    • 漏洞修复:IDAPython:在Windows上,在IDA中发生的异常不会被SWiG生成的包装器捕获,导致IDA中止
    • 漏洞修复:IDAPython:通过‘cpu’变量设置寄存器值,对于某些寄存器类型可能会失败
    • 漏洞修复:IDAPython:UI_Hooks.debugger_menu_change()的默认执行会停止通知的传播
    • 漏洞修复:IDAPython:在控制台输入栏中输入unicode字元可能导致乱码
    • 漏洞修复:IDAPython:当从其他插件调用eval_expr()时,IDAPython可能会根据结果的类型无休止地循环并崩溃
    • 漏洞修复:IDAPython:通过重写GraphViewer.OnDblClick(),将无法通过双击边缘跳转到节点
    • 漏洞修复: IDAPython: ida_hexrays.decompile()没有接受flags参数
    • 漏洞修复:许可证:在连接到许可证服务器之前调用浮动许可证-设置时,IDA可能会崩溃
    • 漏洞修复: 许可证: 在某些情况下,提前归还借用的许可证可能会失败
    • 漏洞修复: 加载器: DOS: IDA无法识别页眉外有重定位表的DOS EXE文件
    • 漏洞修复: 加载器: ELF: IDA可能会耗尽内存或导致ELF文件中的‘NOTE’部分出现interr 1434
    • 漏洞修复: 加载器: HEX: Intel HEX文件在扩展寻址中同时使用记录4和2,可能会被错误加载
    • 漏洞修复: 加载器: MACHO: IDA可以在损坏的Mach-O文件上与代码1434进行交互
    • 漏洞修复: 加载器: MACHO: Mach-O headers没有被段覆盖的文件没有被正确加载(例如iPhone AOP固件)
    • 漏洞修复: 加载器: MACHO: dyldcache文件中标记为“<redacted>”的间接符号没有被正确处理
    • 漏洞修复: 加载器:QNX:16位QNX可执行文件被加载为32位
    • 漏洞修复: 加载器:ZIP: 一些有效的ZIP档案无法解压
    • 漏洞修复: 加载器: MACHO: dyldcache文件中标记为“<redacted>”的间接符号没有被正确处理
    • 漏洞修复:处理器: 当将处理器子类型改为具有不同段寄存器集的子类型时,IDA可能会崩溃(例如从H8到H8SX)
    • 漏洞修复:处理器:ST9:使用通用寄存器编码对工作寄存器修复指令的解码
    • 漏洞修复:处理器:arm64:对于某些包含混合(浮动和非浮动)成员的联合,参数位置的计算错误
    • 漏洞修复:处理器:arm:修复了iOS平台对ev_calc_varglocs事件的错误处理
    • 漏洞修复:处理器:arm: 以sub pc,… 结尾的函数会被标记为noreturn
    • 漏洞修复:处理器:在一些罕见的情况下,ida可能会在某些处理器上崩溃(例如pdp-11)
    • 漏洞修复:处理器: m6812: 3byte数组可能会以错误的表示方式显示一些项目(如二进制)
    • 漏洞修复:处理器:PIC16:位数不包含#前缀的立即数被打印
    • 漏洞修复:处理器: pc.IDA在处理ev_calc_varglocs事件时可能会崩溃
    • 漏洞修复:处理器: PC: stkargs必须由ebp引用,即使是模糊sp的函数
    • 漏洞修复:处理器:ppc: r2引用在分析二进制文件时并不总是被解析
    • 漏洞修复:SDK:使用‘ask_file()’默认文件名时,即使有其他过滤器覆盖了它的扩展名,IDA也会在该文件名后面加上一个过滤器
    • 漏洞修复:SDK:在序数#0的情况下调用print_decls()会导致IDA崩溃
    • 漏洞修复:SDK: tinfo_t::get_final_type_name()永远不会返回一个不存在的类型的名称,即使是在类型定义链的最后
    • 漏洞修复:类型:纠正了watcom文件中被破坏的寄存器列表
    • 漏洞修复:类型:在某些情况下,将比特字段转换为常规结构成员会产生不正确的结果
    • 漏洞修复:类型:在本地类型窗口中编辑一个正向声明会通过创建一个循环依赖关系来破坏它
    • 漏洞修复:类型:修复了在解析某些类型声明时的崩溃问题
    • 漏洞修复:类型:修复了多出现的一次interr 823
    • 漏洞修复:类型:带有移位指针的类型的垃圾回收没有正确执行,ida可能因此在退出时崩溃
    • 漏洞修复:类型:在某些情况下,结构的重命名没有伴随着相应的C型的重命名
    • 漏洞修复:类型:当编辑函数原型时,预定义的宏没有被应用
    • 漏洞修复:类型:在某些情况下,没有struct/union/class关键字的自引用类型不会被解析
    • 漏洞修复:内核:分析SjLj处理程序不是确定性的
    • 漏洞修复:内核:在一些罕见的情况下,IDA可能会错误地报告数据库已损坏
    • 漏洞修复:内核:在没有实现ev_realcvt通知的处理器模块(例如Python处理器模块)中无法使用浮点数据。现在这些模块可以使用标准的IEEE-754格式
    • 漏洞修复:内核:在一个“invoke_callback”的回调中同时删除两个邻域回调(即“unhook_from_notification_point”),可能会导致IDA崩溃
    • 漏洞修复:内核:改进了对磁盘空间不足情况的处理方法
    • 漏洞修复:kernel:IDA在GENDSM_FORCE_CODE标志的尾部字节上调用generate_disasm_line()时,可能会中断
    • 漏洞修复:lumina:在Windows上从lumina服务器接收数据时,IDA可能会挂起
    • 漏洞修复:lumina:应用lumina元数据可能会破坏自定义refinfo的操作数
    • 漏洞修复:lumina:即使在明确请求这些函数的情况下,也无法检索低于32字节阈值的函数的元数据
    • 漏洞修复:lumina:类型反序列化缺少错误检查可能会导致内存不足
    • 漏洞修复:objc:IDA可以为Objective-C类型创建错误的超类成员
    • 漏洞修复:objc:未记录的类型代码可能会破坏Objective-C类型的解码
    • 漏洞修复:ui/qt: 在调试过程中,如果打开了“跟踪窗口”,激活一些操作可能会导致IDA跳转到指令指针的当前位置
    • 漏洞修复:ui/qt: 如果要加载的桌面具有非常具体的特征,IDA可能在启动时崩溃
    • 漏洞修复:ui/qt: IDA在切换桌面时可能会崩溃
    • 漏洞修复:ui/qt: IDA可以在要求对其中一个块进行提示后隐藏一个函数
    • 漏洞修复:ui/qt: 当按下‘Esc’时,IDA可能会拒绝关闭某些部件,即使“CLOSED_BY_ESC”配置指令提到了它们
    • 漏洞修复:ui/qt: 在Mac上,IDA希望用“Ins”代替“I”作为选择器和观察视图中的快捷键
    • 漏洞修复:ui/qt: 在OSX上,当视图向右滚动时,点击可能会导致光标偏移
    • 漏洞修复:ui/qt: 使用键盘快捷键指定自定义数据类型,可能会将(良性)快捷键冲突信息打印到控制台
    • 漏洞修复:ui/qt:在OSX上的本地文件对话框中,常用的快捷键无法使用(cmd+c,cmd+v,cmd+x,cmd+a)
    • 漏洞修复:ui/qt: 默认情况下不在标签中使用富文本,只在特定情况下允许使用
    • 漏洞修复:ui/qt: get_graph_viewer()没有返回一个指向图形查看器部件的指针
    • 漏洞修复:ui/qt:如果一个辅助线程进行了大量的print/msg调用,那么在执行这些调用时,IDA可能会有片刻的无响应
    • 漏洞修复:ui/qt:在“快捷键”窗口中,在OSX上按下Ctrl+F时不会显示快速过滤器(就像在其他表格部件上一样)
    • 漏洞修复:ui/qt: 许多Ctrl+… 快捷键在OSX上被破坏
    • 漏洞修复:ui/qt:当一个断点被移动到另一个组时,不会发出通知
    • 漏洞修复:ui/qt:在Linux上,“关于”对话框可能会在Hi-DPI显示器上错误计算文本大小
    • 漏洞修复:ui/qt:打开“更改段翻译”对话框会使IDA崩溃
    • 漏洞修复:ui/qt: 一些选择器的操作,如编辑/删除,在一些(罕见的)情况下可能会丢失
    • 漏洞修复:ui/qt: “Debug view” 选项卡可以用它的所有子部件的名字来代替
    • 漏洞修复:ui/qt:当在十六进制视图中编辑字节时,在视图的文本部分编辑一行的最后一个字节,然后点击视图的十六进制部分下一行的第一个字节,可能会导致视图打印出虚假的文本
    • 漏洞修复:ui/qt: 在调试期间使用图形视图时,IDA可能会在极短的时间内显示出错误的节点边界
    • 漏洞修复:ui/qt:Ctrl+F操作在命令调色板部件中不起作用
    • 漏洞修复:ui/txt:在没有选择的情况下从选择器中删除项目可能会导致IDA崩溃
    • 漏洞修复:ui.IDA可能无法记住某些源路径的映射
    • 漏洞修复:ui: 使用“字符串”窗口和搜索、清除搜索、刷新(使用Shift+F12)、取消刷新、双击最后一项的组合,有可能导致IDA崩溃
    • 漏洞修复:ui:在分解视图的上下文菜单中,对齐值被误报
    • 漏洞修复:ui:在恢复IDB后,重点放在另一个小组件而不是IDA View-A上,在导航带中点击可能无法将IDA View-A同步到该地址
    • 漏洞修复:ui:如果按<End>3次,并且最后一个枚举被隐藏,那么枚举视图中的光标可能会消失
    • 漏洞修复:hexrays:添加可变参数操作可能会为新创建的参数生成不正确的(未对齐的)位置
    • 漏洞修复:hexrays: 字符与非UTF-8文本显示为‘?’字符替换而非十六进制转义序列
    • 漏洞修复:hexrays:在某些情况下,复制选择伪代码到剪贴板可能会复制错误的数据
    • 漏洞修复:hexrays:如果在伪代码窗口中使用的枚举被删除,并且用户试图修改伪代码,反编译器可能会崩溃
    • 漏洞修复:hexrays:反编译器无法在伪代码中显示带有32位字符的字符串字面
    • 漏洞修复:hexrays: 修正了许多中断、崩溃、挂起的问题
    • 漏洞修复:hexrays:在某些情况下,当用户在行末按下ENTER键时,反编译器可能会插入孤注
    • 漏洞修复:hexrays:在某些情况下,变量重命名对传入的函数参数没有影响
    • 漏洞修复:hexrays: preincrement/decrease 运算符的应用过于激进
    • 漏洞修复:hexrays:一些常量被显示为负数,而没有注意整数推广规则
    • 漏洞修复:hexrays: 一些神奇的分支无法识别
    • 漏洞修复:hexrays:有时即使用户要求立即反编译,反编译器也会等待自动分析完成
    • 漏洞修复:hexrays:使用“强制变量”多次使用同一个变量可能会失败