component data variable notifications raise AttributeError
I maintainer di solito rispondono entro 4 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 1/5
- Tempo stimato
- Meno di un'ora
- Idoneità per principianti
- 88/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- python
- Ambito
- reverse-engineering
Direzione di ricerca
Apri binaryninja/binaryview.py e confronta i callback dei componenti intorno alle righe 1481 e 1491 con i callback funzionanti delle variabili dati intorno alle righe 1171-1183. Riproduci il problema con un BinaryDataNotification, bv.create_component() e component.add_data_variable(dv); si considera completato quando entrambi i callback dei componenti gestiscono correttamente il puntatore e le relative annotazioni corrispondono al tipo di handle ricevuto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
_component_data_variable_added passes the raw BNDataVariable pointer to
DataVariable.from_core_struct, which expects a dereferenced struct.
File "binaryninja/binaryview.py", line 1481, in _component_data_variable_added
self._notify.component_data_var_added(self._view, result,
DataVariable.from_core_struct(var, self._view))
File "binaryninja/binaryview.py", line 12255, in from_core_struct
core.BNNewTypeReference(var.type), platform=view.platform,
^^^^^^^^
AttributeError: 'LP_BNDataVariable' object has no attribute 'type'
The three non-component callbacks dereference correctly; the two component ones
do not:
1171 data_var_added from_core_struct(var[0], ...) ok
1177 data_var_removed from_core_struct(var[0], ...) ok
1183 data_var_updated from_core_struct(var[0], ...) ok
1481 component_data_var_added from_core_struct(var, ...) throws
1491 component_data_var_removed from_core_struct(var, ...) throws
The type annotations on the component callbacks are also wrong: declared
var: core.BNDataVariable, actually receive LP_BNDataVariable. The working ones
correctly declare core.BNDataVariableHandle.
FIX: var -> var[0] at lines 1481 and 1491; correct the annotations.
REPRODUCE (no plugin needed):
load any binary, register a BinaryDataNotification implementing
component_data_var_added, then bv.create_component() and
component.add_data_variable(dv).
- Lingua principale
- C++
- Stelle
- 1.3k
- Fork
- 297
- Merge medio
- 5g 8h
- PR unite (30g)
- 16
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Vector35/binaryninja-api
-
Hexagon lifting issuesAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
Vector35/binaryninja-api#8621 · 1 commento ·
I maintainer di solito rispondono entro 4 giorni
-
ARMv7 lifting issuesAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
Vector35/binaryninja-api#8617 · 1 commento ·
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
Vector35/binaryninja-api#8589 ·
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100
Vector35/binaryninja-api#8540 ·
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
Vector35/binaryninja-api#8446 ·
I maintainer di solito rispondono entro 4 giorni
Tutte le issue di Vector35/binaryninja-api
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
shadps4-emu/shadps4-qtlauncher#453 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
google/differential-privacy#516 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
plengauer/DXGIOutputDuplication#76 ·
I maintainer di solito rispondono entro 1 giorno
-
Feature
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 65/100
Narezzurri/OpenVPN-Config-Manager#95 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
rhalbersma/xstd-bits#314 ·
I maintainer di solito rispondono entro 1 giorno