使用 Hex-Rays 插件管理器 安装:
hcli plugin install https://github.com/joxeankoret/diaphora/archive/refs/tags/3.5.0.zip
手动安装:下载代码并将其放入你的 plugins/ 目录中。
Diaphora(διαφορά,希腊语意为“差异”)3.5 版是截至目前(2026 年)可用的最先进的程序差异比对工具(作为 IDA 插件运行)。它于 2015 年发布,此后一直积极维护:Diaphora 已被移植 11 年,覆盖了从 6.8 到 9.5 的每一个 IDA 次要版本。
Diaphora 支持 IDA >= 7.4 的版本,因为代码仅在 Python 3.X 中运行(最后测试的版本是 Python 3.11)。
Diaphora 具备许多你可能期望的常见程序差异比对(bindiffing)功能,例如:
然而,Diaphora 还拥有许多其他任何公开工具都不具备的独特功能。以下是独特功能的不完整列表:
你可以通过捐赠来帮助(或感谢)Diaphora 的作者。如果你愿意这样做,可以使用以下链接之一:
如果你遇到任何问题或需要帮助,欢迎在 Github 上提交 issue。如果你更喜欢交互式聊天,可以使用以下 Discord 频道:https://discord.gg/atg34w2xjV
如果你的公司不允许使用 AGPL 许可证,你可以获取 Diaphora 的商业许可证,以便在你的公司中使用它,或作为个人在你工作的任何公司中使用它(概念类似于 IDA 的命名许可证)。如需了解更多详情,请通过 [email protected] 与我联系。
请记住,阻止你使用 Diaphora 的不是我,而是你的公司。感谢你的理解。
如果你正在寻找如何自动化导出或差异比对过程,或者想要加速操作等……你可能想看看 wiki,那里解答了此类问题。
Diaphora 在 CVE-2020-1350 中找到漏洞被修补的确切函数:

Diaphora 再次找到 CVE-2023-28231 被修复的确切函数:

CVE-2023-28231。正如 ZDI 的一篇博客中所解释的,该漏洞通过检查 "ProcessRelayForwardMessage()" 中中继转发消息的数量是否不大于或等于 32(0x20)而被修复,如下面的伪代码差异比对所示:

Diaphora 进行 Hex-Ray 微码差异比较:

比较汇编、伪代码和微码:

使用 Diaphora 3.0 比较 CVE-2023-21768:

这是 Diaphora 比较在 iOS 9.3.5 中修复的 PEGASUS iOS 内核漏洞的截图:
这是一张旧截图,显示 Diaphora 比较 Microsoft 安全公告 MS15-034:
Diaphora 比较 MS15-034
以下是一些 Diaphora 比较 Microsoft 安全公告 MS15-050 的截图,摘自 Alex Ionescu 的博客文章 Analyzing MS15-050 With Diaphora。

这是一张 Diaphora 比较 iOS 10.3.3 的 iBoot 与 iOS 11.0 的截图: