awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
joxeankoret avatar

joxeankoret/diaphora

0
View on GitHub↗
4,301 stars·409 forks·Python·AGPL-3.0·12 views

Diaphora

Diaphora is a binary diffing tool and similarity engine designed to compare compiled binaries and identify changed or matching code sections. It functions as a reverse engineering plugin that maps relationships between functions and detects compilation units using assembler analysis and graph theory.

The project specializes in vulnerability patch analysis, allowing users to detect security fixes by comparing different versions of a binary. It synchronizes analysis metadata, such as symbol names and comments, between binaries and generates patches by comparing decompiled pseudo-code.

The engine utilizes control flow graphs and heuristic matching to calculate similarity ratios between functions. Its broader capabilities include mapping call graphs, identifying object file boundaries, and managing analysis state through a relational database to facilitate large-scale cross-referencing.

Features

  • Binary Analysis Capabilities - Finds differences between two compiled binaries using assembler analysis and graph theory heuristics.
  • Binary Diffing - Compares compiled binaries to identify changed or matching code sections using assembly and control flow graphs.
  • Binary Similarity Engines - Implements a similarity engine that calculates matching ratios between binary functions using control flow graphs and heuristics.
  • Heuristic Matching Engines - Uses heuristic matching engines to identify corresponding code blocks across different binaries.
  • Reverse Engineering and Analysis - Transfers symbol names and metadata between binaries to preserve analysis effort across different program versions.
  • Graph Similarity Calculations - Computes similarity scores between binary functions based on the structural layout of their control-flow graphs.
  • Binary Function Similarity - Calculates confidence ratios between functions in compiled files to find equivalent logic across different builds.
  • Analysis Metadata Synchronization - Synchronizes symbol names and analyst comments between binaries based on identified matching function pairs.
  • Pseudo-code Diffing - Compares high-level pseudo-code from decompiled binaries to generate patches and analyze structural changes.
  • Analysis Metadata Porting - Transfers symbol names and data types from one binary to another based on identified function matches.
  • Analysis Metadata Synchronization - Transfers comments and symbol names between binaries to preserve manual reverse engineering effort.
  • Program Structural Analysis - Maps relationships between functions by identifying and comparing compilation units and call graphs.
  • Decompiled Code Diffing Tools - Provides a utility to compare decompiled pseudo-code between binaries to generate patches and synchronize metadata.
  • Reverse Engineering Plugins - Functions as a reverse engineering plugin that maps relationships between functions and detects compilation units.
  • Patch Detection - Finds potentially fixed vulnerabilities by comparing two versions of a binary during diffing sessions.
  • Vulnerability Patch Analysis - Identifies security fixes by comparing different versions of a binary to detect where vulnerabilities were patched.
  • Vulnerability Patch Analyzers - Specializes in vulnerability patch analysis by comparing binary versions to detect security fixes.
  • Vulnerable Product Detection - Identifies fixed security vulnerabilities by analyzing structural differences between different binary versions.
  • Control-Flow Graph Generation - Generates control-flow graphs from binary code to calculate similarity ratios between functions.
  • Function Call Mapping - Constructs graphs of function invocation relationships to identify execution flow changes between binary versions.
  • Custom Matching Heuristics - Implements binary comparison logic using queries or scripts to identify matching functions via confidence ratios.
  • Analysis Plugins - Functions as an extension for reverse engineering platforms to map function relationships and identify compilation units.
  • Analysis State Persistence - Stores binary comparison data and symbol metadata in a relational database for large-scale cross-referencing.
  • Relational State Management - Persists binary comparison data and symbol metadata in a relational database for retrieval.
  • Binary Boundary Detection - Identifies the boundaries of original object files within a compiled binary blob.
  • Object File Boundary Detection - Groups functions into their original object files by analyzing structural boundaries within the compiled binary.
  • LLM-Enhanced Decompiled Code Analyzers - Analyzes binary representations and generates patches using decompiled pseudo-code.
  • Compiled Program Auditing - Analyzes binary boundaries and call graphs to map program structure and identify specific object file changes.
  • Pseudo-code Diffing - Generates text-based patches by comparing high-level code representations from an integrated decompilation engine.
  • Code Diff Visualizers - Generates pseudo-code patches by visually comparing decompiled code with syntax highlighting.
  • Binary Diffing and Matching - Program diffing plugin for identifying binary differences.
  • IDA Pro Plugins - Performs advanced binary diffing and program comparison.
  • Reverse Engineering Tools - Advanced binary diffing tool for identifying code changes.

Star history

Star history chart for joxeankoret/diaphoraStar history chart for joxeankoret/diaphora

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Diaphora

Similar open-source projects, ranked by how many features they share with Diaphora.
  • radare/radare2radare avatar

    radare/radare2

    24,129View on GitHub↗

    radare2 is a reverse engineering framework and binary analysis toolset. It functions as a multi-architecture disassembler, low-level binary debugger, and hexadecimal editor for inspecting executable structures and interpreting machine code when original source files are unavailable. The framework provides capabilities for decompiling machine instructions, performing symbolic analysis, and diffing binary files to identify structural changes across versions. It also includes a digital forensic analyzer and disk analyzer for browsing filesystem formats in userland. The toolset supports binary p

    C
    View on GitHub↗24,129
  • bootleg/ret-syncbootleg avatar

    bootleg/ret-sync

    2,349View on GitHub↗

    ret-sync is a set of plugins that helps to synchronize a debugging session (WinDbg/GDB/LLDB/OllyDbg2/x64dbg) with IDA/Ghidra/Binary Ninja disassemblers.

    C
    View on GitHub↗2,349
  • rizinorg/cutterrizinorg avatar

    rizinorg/cutter

    18,957View on GitHub↗

    Cutter is a binary analysis platform and graphical user interface for the Rizin reverse engineering framework. It provides an environment for analyzing the internal logic and data structures of compiled binaries through integrated disassembly and visualization. The platform supports a containerized deployment model to provide isolated environments for binary analysis, which is used to examine suspicious binaries without risking the host system. It is an extensible security tool that allows for the addition of custom analysis capabilities and visualizers via native plugins and scripts. The to

    C++
    View on GitHub↗18,957
  • golang/toolsgolang avatar

    golang/tools

    7,970View on GitHub↗

    This project is a collection of official toolsets and server implementations designed for the parsing, formatting, and semantic analysis of the Go programming language. It includes a language server that provides real-time code intelligence and automated editing capabilities to editors via the Language Server Protocol. The toolset provides a suite of utilities for source code formatting and static analysis. This includes automated standardization of code layout, import organization, and the generation of string representation methods for enumerated types. The project covers broad static anal

    Go
    View on GitHub↗7,970
See all 30 alternatives to Diaphora→

Frequently asked questions

What does joxeankoret/diaphora do?

Diaphora is a binary diffing tool and similarity engine designed to compare compiled binaries and identify changed or matching code sections. It functions as a reverse engineering plugin that maps relationships between functions and detects compilation units using assembler analysis and graph theory.

What are the main features of joxeankoret/diaphora?

The main features of joxeankoret/diaphora are: Binary Analysis Capabilities, Binary Diffing, Binary Similarity Engines, Heuristic Matching Engines, Reverse Engineering and Analysis, Graph Similarity Calculations, Binary Function Similarity, Analysis Metadata Synchronization.

What are some open-source alternatives to joxeankoret/diaphora?

Open-source alternatives to joxeankoret/diaphora include: radare/radare2 — radare2 is a reverse engineering framework and binary analysis toolset. It functions as a multi-architecture… bootleg/ret-sync — ret-sync is a set of plugins that helps to synchronize a debugging session (WinDbg/GDB/LLDB/OllyDbg2/x64dbg) with… rizinorg/cutter — Cutter is a binary analysis platform and graphical user interface for the Rizin reverse engineering framework. It… golang/tools — This project is a collection of official toolsets and server implementations designed for the parsing, formatting, and… avast/retdec — RetDec is a reverse engineering framework and static binary analysis tool. Its primary purpose is to function as an… angr/angr — Angr is a binary analysis framework and static analysis tool used for reverse engineering compiled binaries. It serves…