Move functionality from plugins to a BinDiff server process
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
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
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
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de google/bindiff
-
Similarity score is capped at 0.65 for binaries with no flow graph edgesPosiblemente ocupada @zunnurawan la tomó hace 21 días. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
question
Dificultad 3/5 1-2 días Aptitud para principiantes 42/100
-
ida pro 9.1 i64 db diff failsAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
[Bug] Error when buildAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 55/100
-
[Bug] Protobuf message size limit of 2GB exceeded during final stage of diffing large binariesAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 15/100
Todos los issues de google/bindiff
Issues similares
-
component/operate kind/feature-request
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
Forge coverage prompts carry text the agent cannot act onPosiblemente ocupada @graalvmbot la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
oracle/graalvm-reachability-metadata#10572 ·
Los mantenedores suelen responder en 1 día
-
[CI] Core CI doesn't run for changes to amoro-format-lance (and amoro-web)Posiblemente ocupada @MarkAlex1234 la tomó hoy. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
area/docs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día