
Diaphora, il più avanzato strumento di diffing di programmi gratuito e open source.
Installa con il gestore plugin Hex-Rays:
hcli plugin install https://github.com/joxeankoret/diaphora/archive/refs/tags/3.4.2.zip
Le istruzioni di installazione manuale sono riportate di seguito.
Diaphora (διαφορά, greco per 'differenza') versione 3.4 è il più avanzato strumento di diffing di programmi (funzionante come plugin IDA) disponibile ad oggi (2026). È stato rilasciato per la prima volta durante il SyScan 2015 ed è stato mantenuto attivamente da allora: Diaphora è stato portato già da 11 anni a ogni singola versione minore di IDA, dalla 6.8 alla 9.4.
Diaphora supporta versioni di IDA >= 7.4 perché il codice viene eseguito solo in Python 3.X (Python 3.11 è stata l'ultima versione testata).
Diaphora ha molte delle più comuni funzionalità di diffing (bindiffing) dei programmi che potresti aspettarti, come:
Tuttavia, Diaphora ha anche molte funzionalità uniche, non disponibili in nessun altro strumento pubblico. La seguente è una lista non esaustiva di funzionalità uniche:
Diaphora non richiede installazione: basta scaricare il codice ed eseguire lo script diaphora.py da IDA o dalla riga di comando (solo per il diffing di database già esportati). Tuttavia, può essere integrato come plugin in IDA procedendo come segue:
plugins/diaphora_plugin.py e plugins/diaphora_plugin.cfg nella directory dei plugin di IDA.diaphora_plugin.cfg e imposta il valore del percorso sulla directory di Diaphora.Puoi aiutare (o ringraziare) l'autore di Diaphora facendo una donazione. Se desideri farlo, puoi usare uno dei seguenti link:
Sentiti libero di aprire issue su GitHub se hai problemi o hai bisogno di aiuto. Se preferisci chattare in modo interattivo, puoi usare il seguente canale Discord: https://discord.gg/atg34w2xjV
Le versioni di Diaphora precedenti alla 1.2.4, inclusa la versione 1.2.4, erano concesse in licenza secondo la GNU GPL versione 3. Dalla versione 2.0, Diaphora è concessa in licenza secondo la GNU Affero GPL versione 3. La licenza è stata modificata affinché le aziende che vogliono modificare e adattare Diaphora non possano offrire servizi web basati su queste versioni modificate senza restituire le modifiche.
Per il 99,99% degli utenti, il cambio di licenza non li influenza affatto. Se la tua azienda necessita di un modello di licenza diverso, controlla la sezione successiva...
Supporto commerciale e consulenza sono offerti per aziende legalmente costituite. Se hai bisogno di supporto o consulenza per problemi con il tuo target, per sviluppare prodotti basati su Diaphora, per usare Diaphora internamente interagendo con i tuoi strumenti, per progetti di rilevamento del plagio, ecc... puoi contattarmi all'indirizzo [email protected] per maggiori dettagli.
Se la tua azienda non consente l'uso della licenza AGPL, puoi ottenere licenze commerciali di Diaphora per usarla nella tua azienda o per usarla come individuo in qualsiasi azienda in cui lavori (concetto simile alle licenze nominative di IDA). Per maggiori dettagli, contattami all'indirizzo [email protected].
Ricorda che non sono io a impedirti di usare Diaphora: è la tua azienda. Grazie per la comprensione.
Se stai cercando come automatizzare il processo di esportazione o di diffing, o vuoi velocizzare le operazioni, ecc... Potresti voler dare un'occhiata alla wiki dove trovano risposta queste domande.
Diaphora individua la funzione esatta in cui è stata corretta una vulnerabilità in CVE-2020-1350:

Diaphora, ancora, individua la funzione esatta in cui è stata corretta CVE-2023-28231:

CVE-2023-28231. Come spiegato in un blog di ZDI, la vulnerabilità è stata corretta verificando che il numero di messaggi di inoltro relay in "ProcessRelayForwardMessage()" non sia maggiore o uguale a 32 (0x20), come mostrato nel seguente diffing di pseudo-codice:

Diaphora mentre esegue il diffing del microcode di Hex-Ray:

Diffing di assembly, pseudo-codice e microcode:

Diffing di CVE-2023-21768 con Diaphora 3.0:

Questa è una schermata di Diaphora mentre esegue il diffing della vulnerabilità del kernel iOS PEGASUS corretta in iOS 9.3.5:
E questa è una vecchia schermata di Diaphora mentre esegue il diffing del bollettino Microsoft MS15-034:
Diaphora diffing MS15-034
Queste sono alcune schermate di Diaphora mentre esegue il diffing del bollettino Microsoft MS15-050, estratte dal post del blog Analyzing MS15-050 With Diaphora di Alex Ionescu.

Ecco una schermata di Diaphora che esegue il diffing di iBoot da iOS 10.3.3 rispetto a iOS 11.0: