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

Move functionality from plugins to a BinDiff server process

Abierto
#17 1 comentario 2 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
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
cpp, grpc, java, python

Línea de trabajo

Empieza por mapear la funcionalidad que actualmente está duplicada entre los plugins del desensamblador y la UI independiente, y después examina cómo se gestionan los datos de BinExport y los grafos de flujo. Define el límite del servidor gRPC y una ruta de adopción incremental para la UI y los plugins; se considera terminado cuando los clientes pueden solicitar diffs y grafos de flujo mientras los datos de BinExport permanecen cargados en el proceso del servidor.

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

Descripción

enhancement

Is your feature request related to a problem? Please describe.

  • Diffing multiple times with the same primary from a disassembler is inefficient, as the export process needs to repeated each time
  • The IDA Pro plugin has a lot of functionality that has to be rewritten for each disassembler with few opportunities to share code (also C++ vs. Java in Ghidra)
  • The standalone UI also reimplements a lot of functionality of the IDA plugin, leading to subtle differences.

Describe the solution you'd like
Implement a local BinDiff RPC server using gRPC that get started on demand (similar to how Gradle/Bazel start build processes). The UI and other plugins can then start diffs (and the .BinExport will stay loaded in memory) and request flow graphs for view. This would help with implementing #16 as well. It would also enable BinDiff-as-a-service style deployments.

The plugins would become simpler and could be implemented in the repective disassembler's favoured scripting language (Python and PyQt for IDA Pro and Binary Ninja, Java Swing for Ghidra).

Describe alternatives you've considered
N/A

Additional context
It should be possible to implement this and adopt it gradually.

Lenguaje dominante
Java
Estrellas
3.2k
Forks
243
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.