
Diaphora, l'outil de comparaison de programmes libre et open source le plus avancé.
Installer avec le gestionnaire de plugins Hex-Rays:
hcli plugin install https://github.com/joxeankoret/diaphora/archive/refs/tags/3.4.2.zip
Les instructions d'installation manuelle sont ci-dessous.
Diaphora (διαφορά, « différence » en grec) version 3.4 est l'outil de diffing de programmes le plus avancé (fonctionnant comme plugin IDA) disponible à ce jour (2026). Il a été publié pour la première fois durant SyScan 2015 et a été activement maintenu depuis : Diaphora a déjà été porté pendant 11 ans sur chaque version mineure d'IDA, de 6.8 à 9.4.
Diaphora prend en charge les versions d'IDA >= 7.4 car le code ne fonctionne qu'en Python 3.X (Python 3.11 a été la dernière version testée).
Diaphora possède la plupart des fonctionnalités courantes de diffing de programmes (bindiffing) auxquelles vous pourriez vous attendre, comme :
Cependant, Diaphora possède également de nombreuses fonctionnalités uniques, indisponibles dans tout autre outil public. La liste suivante est une liste non exhaustive de fonctionnalités uniques :
Diaphora ne nécessite aucune installation : il suffit de télécharger le code et d'exécuter le script diaphora.py depuis IDA ou en ligne de commande (uniquement pour le diffing de bases de données déjà exportées). Cependant, il peut être intégré comme plugin dans IDA en procédant comme suit :
plugins/diaphora_plugin.py et plugins/diaphora_plugin.cfg dans le répertoire des plugins d'IDA.diaphora_plugin.cfg et définissez la valeur du chemin vers le répertoire de Diaphora.Vous pouvez aider (ou remercier) l'auteur de Diaphora en faisant un don. Si vous le souhaitez, vous pouvez utiliser l'un des liens suivants :
N'hésitez pas à ouvrir des issues sur Github si vous avez un problème ou besoin d'aide. Si vous préférez discuter de manière interactive, vous pouvez utiliser le canal Discord suivant : https://discord.gg/atg34w2xjV
Les versions de Diaphora antérieures à 1.2.4, y compris la version 1.2.4, étaient sous licence GNU GPL version 3. Depuis la version 2.0, Diaphora est désormais sous licence GNU Affero GPL version 3. La licence a été modifiée afin que les entreprises souhaitant modifier et adapter Diaphora ne puissent pas proposer de services web basés sur ces versions modifiées sans en partager les modifications en retour.
Pour 99,99 % des utilisateurs, le changement de licence ne les affecte pas du tout. Si votre entreprise a besoin d'un modèle de licence différent, consultez la section suivante...
Le support commercial et le conseil sont proposés aux entreprises légales. Si vous avez besoin de support ou de conseil pour des problèmes liés à votre cible, pour développer des produits basés sur Diaphora, pour utiliser Diaphora en interne en interaction avec vos propres outils, pour des projets de détection de plagiat, etc., vous pouvez me contacter à [email protected] pour plus de détails.
Si votre entreprise n'autorise pas l'utilisation de la licence AGPL, vous pouvez obtenir des licences commerciales de Diaphora pour l'utiliser dans votre entreprise ou en tant que particulier dans toute entreprise où vous travaillez (concept similaire aux licences nominatives d'IDA). Pour plus de détails, veuillez me contacter à [email protected].
Veuillez vous rappeler que je ne suis pas celui qui vous empêche d'utiliser Diaphora : c'est votre entreprise. Merci de votre compréhension.
Si vous cherchez à automatiser le processus d'exportation ou de diffing, ou si vous souhaitez accélérer les opérations, etc., vous voudrez peut-être jeter un œil au wiki où ces questions trouvent leurs réponses.
Diaphora trouvant la fonction exacte où une vulnérabilité a été corrigée dans CVE-2020-1350 :

Diaphora, encore une fois, trouvant la fonction exacte où CVE-2023-28231 a été corrigée :

CVE-2023-28231. Comme expliqué dans un blog de ZDI, la vulnérabilité a été corrigée en vérifiant que le nombre de messages de transfert de relais dans "ProcessRelayForwardMessage()" n'est pas supérieur ou égal à 32 (0x20), comme le montre le diffing de pseudo-code suivant :

Diaphora effectuant le diffing du microcode d'Hex-Ray :

Diffing de l'assembleur, du pseudo-code et du microcode :

Diffing de CVE-2023-21768 avec Diaphora 3.0 :

Ceci est une capture d'écran de Diaphora effectuant le diffing de la vulnérabilité du noyau iOS PEGASUS corrigée dans iOS 9.3.5 :
Et voici une ancienne capture d'écran de Diaphora effectuant le diffing du bulletin Microsoft MS15-034 :
Diaphora effectuant le diffing de MS15-034
Voici quelques captures d'écran de Diaphora effectuant le diffing du bulletin Microsoft MS15-050, extraites du billet de blog Analyzing MS15-050 With Diaphora d'Alex Ionescu.

Voici une capture d'écran de Diaphora effectuant le diffing d'iBoot d'iOS 10.3.3 par rapport à iOS 11.0 :