joxeankoret/diaphora

Diaphora, the most advanced Free and Open Source program diffing tool.

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 1 hour ago
Added to GitGenius on September 15th, 2026
Created on March 20th, 2015
Open Issues & Pull Requests: 35 (+0)
GitHub issues: Enabled
Number of forks: 417
Total Stargazers: 4,394 (+0)
Total Subscribers: 121 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 18.3 hours
Mean response time: 49.6 days
90th percentile: 27.5 days
Tracked items: 85

Most active contributors

Sign in to see contributor activity.

How this project is maintained

54% of open issues come from outside the core team, a mix of external reports and the maintainers' own roadmap. Three people close 91% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 24
New in 7 days: 14
Closed in 7 days: 14
Avg open age: 1,360 days
Stale 30+ days: 20
Stale 90+ days: 16

Recent activity

Opened in 7 days: 0
Closed in 7 days: 13
Comments in 7 days: 0
Events in 7 days: 1

Top labels

  • enhancement (16)
  • bug (4)
  • help wanted (3)
  • important (2)
  • critical (1)
  • question (1)

Detailed Description

Diaphora is a program diffing tool that works as an IDA plugin for identifying and analyzing differences between binary files.

The tool addresses the problem of comparing compiled binaries to detect changes, vulnerabilities, and similarities across different versions or variants of software. It operates by analyzing assembler code, control flow graphs, and pseudo-code through multiple heuristics based on graph theory and binary features. The tool can match functions across binaries, calculate similarity ratios, and port metadata like symbol names, comments, structs, enums, and typedefs from one binary to another.

Diaphora suits security researchers, reverse engineers, and patch analysts who need to understand what changed between software versions. It is particularly valuable for vulnerability research and patch diffing workflows. The tool distinguishes itself through capabilities not found in other public diffing tools, including support for porting type information across binaries, detection of potentially fixed vulnerabilities, compilation unit analysis, microcode-level diffing, parallel diffing execution, pseudo-code comparison with syntax highlighting, and pseudo-code patch generation. It supports batch automation and scripting for both the export and diffing processes, allowing integration into larger analysis workflows.

Development activity shows consistent maintenance across multiple IDA versions spanning more than a decade, with the tool regularly ported to each minor release. The project maintains active community engagement through a dedicated Discord channel and GitHub issue tracking. The codebase is written in Python and requires Python 3.X, with testing performed against recent Python versions. The tool can be deployed either as a standalone script run from within IDA or integrated as a formal plugin through IDA's plugin directory.