
Diaphora, самый продвинутый бесплатный инструмент для сравнения программ с открытым исходным кодом.
Установка через менеджер плагинов Hex-Rays:
hcli plugin install https://github.com/joxeankoret/diaphora/archive/refs/tags/3.5.0.zip
Ручная установка: скачайте код и поместите его в каталог plugins/.
Diaphora (διαφορά, по-гречески «различие») версии 3.5 — самый продвинутый инструмент для диффинга программ (работающий как плагин IDA), доступный на сегодняшний день (2026). Он был выпущен в 2015 году и с тех пор активно поддерживается: Diaphora уже 11 лет портируется на каждую минорную версию IDA, начиная с 6.8 и заканчивая 9.5.
Diaphora поддерживает версии IDA >= 7.4, поскольку код работает только в Python 3.X (последней протестированной версией был Python 3.11).
Diaphora обладает многими из наиболее распространённых функций диффинга программ (бинарного диффинга), которые вы можете ожидать, например:
Однако у Diaphora есть и множество уникальных возможностей, недоступных ни в одном другом публичном инструменте. Ниже приведён неполный список уникальных возможностей:
Вы можете помочь (или поблагодарить) автора Diaphora, сделав пожертвование. Если вы хотите это сделать, можете воспользоваться одной из следующих ссылок:
Не стесняйтесь открывать issues на Github, если у вас возникли проблемы или нужна помощь. Если вы предпочитаете общаться в чате, можете использовать следующий канал 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:

Диффинг ассемблера, псевдокода и микрокода:

Диффинг CVE-2023-21768 с помощью Diaphora 3.0:

Это скриншот Diaphora, выполняющей диффинг уязвимости ядра PEGASUS iOS, исправленной в iOS 9.3.5:
А это старый скриншот Diaphora, выполняющей диффинг бюллетеня Microsoft MS15-034:
Diaphora выполняет диффинг MS15-034
Это несколько скриншотов Diaphora, выполняющей диффинг бюллетеня Microsoft MS15-050, взятых из записи блога Analyzing MS15-050 With Diaphora Алекса Ионеску.

Вот скриншот Diaphora, выполняющей диффинг iBoot из iOS 10.3.3 против iOS 11.0: