IDAPro是逆向工程软件提供商Hex-Rays的旗舰产品。作为一个交互式可编程反汇编程序和调试器,IDAPro在不同平台上提供了优异的质量性能,并与许多处理器兼容。IDAPro已成为恶意代码分析、漏洞研究和商业现成验证的事实标准。
IDAPro提供不同类型的许可证:命名许可证、计算机许可证、浮动许可证和教育许可证,以满足不同业务的规模和使用需求。
主要功能
用于大量处理器的反汇编模块。SDK甚至允许您运行自定义反汇编程序;
完整和可扩展的交互;
可编程:IDA可以使用IDC或IDAPython根据用户自己的需求进行扩展;
开放式插件架构:外部插件可以扩展IDA的功能;
检索技术(快速图书馆识别技术)
代码绘图;
Lumina服务器拥有大量已知功能的元数据;
多目标调试器
调试器添加了对反汇编程序静态收集的信息的动态分析;
提供调试器的所有预期功能以及更多:“远程”功能和跟踪。远程调试器:适用于Windows、Linux、MacOS X和其他任何组合的机器;
随着新的IDA版本的发布,我们引入了更多的功能和升级!
像往常一样,IDA在许多方面都有所改进,但这一次最重要的特点是引入了全新的IDATeams,这也是主要版本升级的理由。
IDATeams发布了
我们一直在努力完成我们的新产品的收尾工作:一套集成的工具,以实现[逆向]工程师团队之间的无缝协作。
受现有最佳版本控制工具的启发,IDATeams将其关键概念引入IDA数据库和工作流:
修订控制
更改属性
扩散和合并
我们感到非常骄傲和兴奋通过IDATeams所能完成的,希望您能欣赏它的潜力。但我们不会就此止步:我们对下一个版本已经有了很好的想法!
iOS16 dyld共享缓存支持
再一次,Apple修改了其移动操作系统上系统文件的内部格式,以提高性能和内存使用率,因此我们更新了IDA以支持新的调整。
功能概述
Apple在最近的iOS版本上使用的另一个新技巧是概述功能。这是一种代码大小优化,编译器将多个函数中使用的公共指令序列提取到一个新的伪函数中,然后从多个位置“调用”。
这种行为往往会使反编译的伪代码变得丑陋,尤其是当概述的函数使用来自父函数的任意寄存器或堆栈变量时。现在,您可以用一个特殊属性标记这些函数,反编译的代码看起来会更好。
例如,下面是一个经过优化编译的文件片段:
在初始伪代码中,我们可以看到对编译器生成的函数NN片段的显式调用,以及一些用橙色标记的变量,因为反编译器认为它们被调用破坏(这是对常规函数的调用)。
在用“outline”属性标记这些伪函数并刷新伪代码后,反编译程序将所有内容都排成一行,不再有橙色变量:
Golang1.18
新版本的语言改变了元数据的布局。新的IDA版本可以解析它并很好地恢复函数名。
例如,在IDA7.7中有一个剥离的golang1.18二进制:
和IDA8.0中相同的二进制文件:
ARC反编译程序
ARC处理器用于许多嵌入式设备,如SSD驱动器或Wi-Fi芯片组。直到几年前,它还是臭名昭著的英特尔ME的核心。新的反编译器支持IDA当前支持的所有ARC指令集变体:经典32位ISA、32/16位ARCompact和新的ARCv2。即时支持延迟槽、条件指令和零开销循环。
不再使用Python2
Python2.7支持已经结束两年多了,是时候放手了。IDA8.0将只支持Python3.x,包括最新的3.10(Windowsinstaller包括Python3.10.5)。
由于functionfinder插件(patfind),固件分析效果更好
固件二进制文件通常没有任何符号或其他元数据来帮助IDA在未标记的加载数据中查找代码,因此用户必须手动执行。在新版本中,我们添加了一个插件,该插件利用了Ghidra中使用的模式格式(具有较小的扩展)。默认情况下,该插件对二进制和类似二进制的格式启用,并帮助IDA自动发现更多代码。也可以手动调用普通结构化文件,以查找其他未引用的代码。
初始自动分析后发现的函数数与默认设置的比较:
文件类型 | IDA7.7 | IDA8.0 |
CortexM0固件(8KB) | 0 | 59 |
ARM9固件(23KB) | 0 | 97 |
ARM11固件(300KB) | 84 | 1697 |
PowerPC固件(2MB) | 0 | 2223 |
FLAIR图案生成器(makepat)
FLAIR工具包可供所有IDAPro客户使用,允许从静态库中创建调情签名。然而,这样的库并不总是可用的,有时您所拥有的只是最终链接的二进制文件。makepat插件支持为任意IDA数据库中的函数创建.pat文件。它使用为Lumina添加的功能来标记图案中的可变字节。然后可以使用sigmake将.pat编译为签名文件,并应用于其他文件
什么是IDATeams?
IDATeams是将IDA进化为一种新模型,让分析师团队能够使用强大的客户机-服务器架构范式协同工作:
我们将位于中心的服务器称为Vault服务器,它是存储区域,用于保存所有文件并跟踪修改。该服务器是跨项目共享进度的中心点。
每次参与者通过服务器将其更改发布到团队的其他成员时,更改都会被记住。这样,就可以让团队成员在同一个项目上协同工作,而不会有数据丢失、多个相互竞争的“不同步”版本等风险。。。
除了新的Vault服务器外,我们还改进了IDA,使其可以作为一种工具,在同一个.idb文件的不同细化(即“修订”)之间进行比较。有了这个新功能,任何人都可以看到每个版本都引入了哪些更改:
它是如何工作的?
IDA的一般工作流程保持不变:用户可以像以前一样在IDA中工作(在线或离线)。
但多亏了IDATeams的架构,他们现在有了更好的工具来向团队的其他成员发布他们的发现(以及检索其他成员所做的更改并从中受益)
IDATeams是HexRays对逆向工程团队中日益增长的协作需求的回应。以下是几个关键好处:
无缝集成
IDATeams是对IDAPro的改进版本,只为其添加了功能。在大多数情况下,现有工作流将保持不变。
轻松协作
对IDA的改进,以及一套新的工具,是处理大型项目的无价补充。
并行化逆向工程
IDATeams允许您跨多个用户无缝地共享逆向工程任务(可能同时工作)。
跟踪变化
讨论、回顾甚至纠正以前的更改。Vault服务器保留了一个记录谁做了什么(以及什么时候做的)的账本,为有时会令人困惑的上下文提供了一些线索。
现场
组织通过托管IDA团队来保留其所有IP。此外,它将与现有IT基础架构(和备份策略)无缝集成。Vault服务器可以托管在任何Linux服务器上,为您提供了广泛的选择,以保持数据的私密性和可靠的可访问性。
在线或离线
IDA团队服务器托管在本地,并不意味着用户必须亲自参与工作:完全可以在不在家的情况下,在没有互联网连接的情况下(例如,在飞机上)完成所有工作,并在访问服务器后立即使其可用。
轻松解决冲突
当两个(或更多)分析师修改项目的同一部分时,可能会出现冲突。在这里,您也介绍了IDATeams:新特性带来了一组解决这些问题的策略。
审核编辑:刘清
-
处理器
+关注
关注
68文章
19135浏览量
228955 -
可编程
+关注
关注
2文章
836浏览量
39770 -
调试器
+关注
关注
1文章
300浏览量
23677
原文标题:IDA 8.0---先进的二进制代码分析工具
文章出处:【微信号:哲想软件,微信公众号:哲想软件】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论