Offer plugins a way to add serialized data into the database

Abierto
#6,545 3 comentarios 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

Línea de trabajo

No files, tests, or entry points are named. Start by reading the existing serialization and binary-view metadata mechanisms, then determine how a plugin could persist analysis data during serialization; done means a documented, usable plugin mechanism for storing and retrieving that data.

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

Descripción

Component: Core Effort: Low Impact: Medium

We should offer a plugin a callback or some other mechanism to add data into the database during the serialization process. This allows them to more efficient store and retrieve analysis related data.

A potential use case is like a plugin deals control-flow flattening, and it works by first analyzing the function, figuring out the mapping relationship of the basic blocks, and then use a workflow to rewrite the IL. Since the analysis and calculation can be expensive, so it cannot be redo every time the workflow runs, it must be somehow cached. And this cached information needs to be saved into the database as well. And the ability to write data into the database during the serialization process gives the plugin the same capacity to persist the data as the analysis done in the core

An alternative to this is to support function-level metadata (right now we only support binary view level), but I believe that is inferior to directly allow a plugin to do serialization

Lenguaje dominante
C++
Estrellas
1.3k
Forks
298
Merge medio
5 d 5 h
PR fusionados (30 d)
19

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

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 Vector35/binaryninja-api

Todos los issues de Vector35/binaryninja-api

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.