angr / angr-management

The official angr GUI.
BSD 2-Clause "Simplified" License
886 stars 110 forks source link

Global KnowledgeBase access #62

Open sraboy opened 5 years ago

sraboy commented 5 years ago

I think the current KB (or angr.Project) should be globally accessible, either as a global var or through a globally-accessible workspace property. The DisassemblyView only has it through the cfg, which doesn't exist right off the bat. In other places, like the functions table, I've had to hack in a new property.

For example, I'm writing a KB plugin that stores information per instruction or per function and I lookup function/instruction information in the plugin to change the background highlight color in the disassembly and/or function table widget.

EDIT: Ditto for making the current project accessible through the Python console.

sraboy commented 5 years ago

Derp. Long term, this is definitely better served by providing a bunch of callbacks to make the UI pluggable.

ltfish commented 5 years ago

We are redesigning the KB at this very moment. Hold your breath :)