Offer plugins a way to add serialized data into the database

Aperta
#6,545 3 commenti 2 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
cpp

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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

Lingua principale
C++
Stelle
1.3k
Fork
298
Merge medio
5g 5h
PR unite (30g)
19

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Vector35/binaryninja-api

Tutte le issue di Vector35/binaryninja-api

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.