google

google/bindiff

Java Apache-2.0 Security

Quickly find differences and similarities in disassembled code

3.1k stars
231 forks
slow
GitHub +4 / week

3.1k

Stars

231

Forks

51

Open issues

25

Contributors

v8 25 Sep 2023

AI Analysis

BinDiff is an open-source binary comparison tool that identifies differences and similarities in disassembled code across multiple architectures (x86, ARM, MIPS, PowerPC). It serves vulnerability researchers, security analysts, and reverse engineers who need to track vendor patches, port symbols between disassemblies, and retain analysis across binary versions. It is not a general-purpose tool—it is specialized for professionals in binary analysis and reverse engineering workflows.

Security Security Tool Discovery value: 4/10
Documentation 7/10
Activity 7/10
Community 8/10
Code quality 5/10

Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.

Overall score 8/10

AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.

binary-analysis reverse-engineering program-differencing vulnerability-research disassembly
Actively maintained Well documented Niche/specialized use case Apache-2.0 licensed Popular Production ready
Deep Analysis · Based on README and public signals
1w ago

Google's binary diff engine for vulnerability researchers and patch analysts

BinDiff is an open-source tool for comparing disassembled binary files to identify differences and similarities across x86, ARM, MIPS, and other architectures. Built by Google, it targets vulnerability researchers, security engineers, and binary analysts who need to track patches, port analysis metadata between versions, and detect function-level changes. It integrates with IDA Pro, Binary Ninja, and Ghidra disassemblers. Adoption appears concentrated in professional security teams and research groups rather than mainstream development.

Origin

BinDiff originated at Zynamics (acquired by Google in 2011) and was previously commercial. Google open-sourced it in 2023. The README documents heritage back to 2011 and shows active maintenance through early 2026. It has served the binary analysis community for over a decade, though recent open-source release is recent.

Growth

The project gained 3,089 stars since public release in September 2023 (approximately 2.5 years of growth). Growth appears steady but modest (6 stars in last 7 days relative to current date 2026-07-02). The comparable project Diaphora (4,301 stars, Python) and BinExport (1,191 stars, the companion C++ library) suggest a stable but niche user base. Recent push activity (2026-05-07) indicates active maintenance rather than growth momentum.

In production

Adoption not verified. No case studies, deployment counts, or organizational user citations are mentioned in README. The Zynamics heritage and Google backing suggest internal use at Google and prior commercial customer base, but current open-source adoption is not documented. Repository statistics (3,089 stars, 230 forks) are modest for a two-year-old Google open-source project and do not indicate widespread adoption relative to competing tools.

Code analysis
Architecture

Based on README: native C++ core for matching algorithms and binary comparison; Java-based GUI for visualization; integration plugins for IDA Pro, Binary Ninja, and Ghidra. Likely uses Protocol Buffers for serialization and CMake for cross-platform builds. Architecture appears modular (separate match engine, disassembler plugins, UI) but depends on commercial yFiles library for graph visualization, which may limit GUI building to licensed developers.

Tests

README mentions 'fixtures' directory with test files to exercise the core engine and references ctest invocation in build instructions, but extent of coverage is not documented. No metrics provided.

Maintenance

Last push 2026-05-07 (approximately 2 months before evaluation date) indicates active upkeep. Build instructions reference recent tool versions (CMake 3.14+, Ninja, GCC 9+, Java 11 LTS). Dependencies are explicitly versioned (Boost 1.83.0, Protocol Buffers 3.14). No evidence of abandonment; appears to be maintained at a steady, professional level rather than rapid feature development.

Honest verdict

ADOPT IF: you are a security researcher, patch analyst, or vulnerability team who needs to compare binaries across multiple disassemblers (IDA Pro, Binary Ninja, Ghidra) and want a mature, Google-backed tool. AVOID IF: you expect large community resources, frequent feature additions, or broad adoption signals — this is a specialized tool with limited public adoption evidence. MONITOR IF: you are evaluating binary analysis workflows; BinDiff is actively maintained and technically solid, but real-world usage patterns and performance at scale are not publicly documented.

Independent dimensions

Mainstream potential

3/10

Technical importance

7/10

Adoption evidence

2/10

Risks
  • Java GUI requires commercial yFiles library (version 2.x, aging) — building from source with GUI is restricted to yFiles licenseholders; binary releases mitigate this but limit community contributions to UI layer.
  • Adoption not verified at scale; no public case studies, deployment counts, or user references — difficult to assess real-world reliability and performance burden in large organizations.
  • Depends on external disassemblers (IDA Pro, Binary Ninja, Ghidra) and their export quality — BinDiff's effectiveness is bounded by disassembly accuracy, which it does not control.
  • Modest growth trajectory and star count relative to two years of public availability and Google backing — may indicate niche appeal limits or competition from integrated disassembler features.
  • Build complexity (CMake, multiple native + Java toolchains, dependency management) may reduce casual contributor adoption; low barrier to using prebuilt binaries but high barrier to local development.
Prediction

BinDiff will likely remain a specialized tool for professional binary analysts and security teams rather than mainstream adoption. Google's stewardship and open-source release position it for steady, long-term maintenance. Growth will probably remain modest unless disassembler consolidation (e.g., Ghidra adoption by enterprise security) drives new users into the ecosystem.

0 found this helpful

Newsletter

Get analyses like this every Monday

Free weekly digest of the most interesting open-source discoveries.

Languages

Java
71.3%
C++
27.8%
Shell
0.4%
CMake
0.3%
Batchfile
0.1%
Dockerfile
0%
C
0%
Rich Text Format
0%

Information

Language
Java
License
Apache-2.0
Last updated
2mo ago
Created
34mo ago
Analyzed with
anthropic/claude-haiku-4-5

Stars over time

Loading…

Contributors over time

Top 100 contributors only — repos with more will plateau at 100.

Loading…

Similar repos

google

google/binexport

BinExport is a specialized reverse-engineering plugin for IDA Pro, Binary...

1.2k C++ Security
joxeankoret

joxeankoret/diaphora

Diaphora is a specialized binary diffing (bindiff) tool designed as an IDA Pro...

4.3k Python Security
JakeWharton

JakeWharton/diffuse

Diffuse is a specialized tool for analyzing and comparing binary artifacts...

2.2k Kotlin Mobile
sisong

sisong/HDiffPatch

HDiffPatch is a specialized C/C++ library and command-line toolkit for creating...

2.1k C++ Dev Tools
java-diff-utils

java-diff-utils/java-diff-utils

Java Diff Utils is a mature, open-source library for computing diffs, applying...

1.5k Java Dev Tools
vs. alternatives
Diaphora (joxeankoret/diaphora)

Python-based binary diffing tool with higher GitHub presence (4,301 stars). Diaphora also integrates with IDA Pro and focuses on function similarity. BinDiff has Google backing and broader disassembler support (Ghidra, Binary Ninja) but Diaphora appears to have larger visible community traction.

BinExport (google/binexport)

Companion C++ library (1,191 stars) that exports binary analysis to format BinDiff consumes. BinDiff depends on BinExport for core functionality. Together they form an ecosystem; BinDiff is the consumer tool while BinExport is the lower-level extraction layer.

IDA Pro built-in diffing

IDA Pro (proprietary, dominant disassembler) includes native diff capabilities. BinDiff offers independent, cross-disassembler comparison but likely competes with features many IDA users already have access to.

Binary Ninja comparison features

Binary Ninja (proprietary disassembler) integrates native comparison tools. BinDiff provides independent cross-disassembler workflow but again may compete with existing vendor features for users invested in a single disassembler.

Ghidra NSA disassembler (open, limited diff)

Ghidra is free and open but has limited built-in binary comparison. BinDiff fills a gap for Ghidra users but depends on Ghidra's export capabilities rather than replacing it.