Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[Bug] Protobuf message size limit of 2GB exceeded during final stage of diffing large binaries

Abierto
#82 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
15/100
Tipo de issue
Error
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
java

Línea de trabajo

El informe identifica el flujo de comparación de BinDiff UI y la agregación final de los datos de coincidencias como el área afectada, pero no menciona archivos de origen, pruebas ni puntos de entrada. Comienza reproduciendo el fallo con archivos .BinExport grandes y rastrea dónde el mensaje de Protocol Buffers supera los 2GB. Se considera terminado cuando el diff finaliza y muestra resultados para los binarios grandes descritos.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

**Describe the bug**

When diffing two large and complex binaries (e.g., in the 500MB - 1.5GB range per file), the BinDiff engine successfully processes most of the diff but fails at the very final stage. The process terminates with an error message indicating that the Protocol Buffers message size limit of 2GB has been exceeded.

**To Reproduce**

1.  Generate `.BinExport` files for two large, complex executables. The individual `.BinExport` files themselves are under 2GB.
2.  Load both files into the BinDiff UI for comparison.
3.  The diffing process runs for a significant amount of time, appearing to complete the matching algorithms.
4.  At the end of the process, the error related to the 2GB Protobuf limit is thrown, and the diff fails to complete.

**Expected behavior**

The diff should complete successfully, and the results should be displayed, even for large and complex binaries where the internal match data is extensive.

**Analysis of Root Cause**

This bug suggests that BinDiff is attempting to serialize the **entire set of diff results**—including all function matches, basic block matches, and associated metadata—into a *single internal Protocol Buffers message*. For sufficiently complex binaries, the sheer volume of this match data can cause the resulting message to surpass the hard 2GB limit of the Protobuf library.

This is an architectural limitation in how the final results are aggregated and handled internally.

**Environment:**
* **OS:** `[e.g., Windows 11 / Ubuntu 22.04]`
* **BinDiff Version:** `[e.g., 8.0]`
* **Disassembler:** `[e.g., IDA Pro 8.4]`
* **System RAM:** `[e.g., 64 GB]`
Lenguaje dominante
Java
Estrellas
3.2k
Forks
240
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de google/bindiff

Todos los issues de google/bindiff

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.