
Diaphora, das fortschrittlichste freie und quelloffene Programm-Diffing-Tool.
Installation über den Hex-Rays Plugin Manager:
hcli plugin install https://github.com/joxeankoret/diaphora/archive/refs/tags/3.4.2.zip
Anleitungen zur manuellen Installation findest du weiter unten.
Diaphora (διαφορά, griechisch für „Differenz") Version 3.4 ist das fortschrittlichste Programm-Diffing-Tool (das als IDA-Plugin funktioniert), das es heute (2026) gibt. Es wurde erstmals während des SyScan 2015 veröffentlicht und ist seitdem aktiv gepflegt worden: Diaphora wurde bereits seit 11 Jahren auf jede einzelne Nebenversion von IDA von 6.8 bis 9.4 portiert.
Diaphora unterstützt IDA-Versionen >= 7.4, da der Code nur unter Python 3.X läuft (Python 3.11 war die zuletzt getestete Version).
Diaphora bietet viele der gängigsten Funktionen zum Programm-Diffing (Bindiffing), die du erwarten würdest, wie zum Beispiel:
Diaphora bietet jedoch auch viele Funktionen, die einzigartig sind und in keinem anderen öffentlichen Tool verfügbar sind. Die folgende Liste ist eine nicht vollständige Liste einzigartiger Funktionen:
Diaphora erfordert keine Installation: Lade einfach den Code herunter und führe das Skript diaphora.py aus IDA heraus oder über die Befehlszeile aus (nur zum Diffing bereits exportierter Datenbanken). Es kann jedoch wie folgt als Plugin in IDA integriert werden:
plugins/diaphora_plugin.py und plugins/diaphora_plugin.cfg in das Plugin-Verzeichnis von IDA.diaphora_plugin.cfg und setze den Pfadwert auf das Diaphora-Verzeichnis.Du kannst den Autor von Diaphora unterstützen (oder ihm danken), indem du eine Spende machst. Wenn du das möchtest, kannst du einen der folgenden Links verwenden:
Zögere nicht, Issues auf Github zu eröffnen, wenn du ein Problem hast oder Hilfe benötigst. Wenn du lieber interaktiv chatten möchtest, kannst du den folgenden Discord-Kanal nutzen: https://discord.gg/atg34w2xjV
Versionen von Diaphora vor 1.2.4, einschließlich Version 1.2.4, wurden unter der GNU GPL Version 3 lizenziert. Seit Version 2.0 ist Diaphora unter der GNU Affero GPL Version 3 Lizenz lizenziert. Die Lizenz wurde geändert, damit Unternehmen, die Diaphora modifizieren und anpassen möchten, keine Webdienste auf Basis dieser modifizierten Versionen anbieten können, ohne die Änderungen zurückzugeben.
Für 99,99 % der Benutzer hat die Lizenzänderung überhaupt keine Auswirkungen. Wenn dein Unternehmen ein anderes Lizenzmodell benötigt, wirf einen Blick auf den nächsten Abschnitt ...
Kommerzieller Support und Beratung werden für legale Unternehmen angeboten. Wenn du Unterstützung oder Beratung bei Problemen mit deinem Zielobjekt benötigst, bei der Entwicklung von Produkten auf Basis von Diaphora, bei der internen Nutzung von Diaphora in Verbindung mit deinen eigenen Tools, bei Plagiatserkennungsprojekten usw., kannst du mich für weitere Details unter [email protected] kontaktieren.
Wenn dein Unternehmen die AGPL-Lizenz nicht zulässt, kannst du kommerzielle Lizenzen von Diaphora erwerben, um es in deinem Unternehmen zu nutzen oder als Einzelperson in jedem Unternehmen, für das du arbeitest (ähnliches Konzept wie die benannten Lizenzen von IDA). Für weitere Details kontaktiere mich bitte unter [email protected].
Bitte denke daran: Nicht ich hindere dich daran, Diaphora zu verwenden, sondern dein Unternehmen. Vielen Dank für dein Verständnis.
Wenn du nach Möglichkeiten suchst, den Export- oder Diffing-Prozess zu automatisieren, oder du Operationen beschleunigen möchtest usw., solltest du einen Blick ins Wiki werfen, wo solche Fragen beantwortet werden.
Diaphora findet die genaue Funktion, in der eine Schwachstelle in CVE-2020-1350 gepatcht wurde:

Diaphora findet erneut die genaue Funktion, in der CVE-2023-28231 behoben wurde:

CVE-2023-28231. Wie in einem Blog von ZDI erläutert, wurde die Schwachstelle behoben, indem geprüft wird, dass die Anzahl der Relay-Forward-Nachrichten in „ProcessRelayForwardMessage()" nicht größer oder gleich 32 (0x20) ist, wie im folgenden Pseudocode-Diffing gezeigt:

Diaphora beim Diffing des Hex-Rays-Mikrocodes:

Diffing von Assembler, Pseudocode und Mikrocode:

Diffing von CVE-2023-21768 mit Diaphora 3.0:

Dies ist ein Screenshot von Diaphora beim Diffing der PEGASUS-iOS-Kernel-Schwachstelle, die in iOS 9.3.5 behoben wurde:
Und dies ist ein alter Screenshot von Diaphora beim Diffing des Microsoft Bulletins MS15-034:
Diaphora diffing MS15-034
Dies sind einige Screenshots von Diaphora beim Diffing des Microsoft Bulletins MS15-050, entnommen aus dem Blogbeitrag Analyzing MS15-050 With Diaphora von Alex Ionescu.

Hier ist ein Screenshot von Diaphora beim Diffing von iBoot aus iOS 10.3.3 gegen iOS 11.0: