Vector35 / binaryninja-api

Public API, examples, documentation and issues for Binary Ninja
https://binary.ninja/
MIT License
900 stars 204 forks source link

Potential improvements to tags #2118

Open amtal opened 3 years ago

amtal commented 3 years ago

There's no way to add context information to bookmarks:

In projects where points of interest accumulate, there's no way to structure bookmarks. The tab can't be sorted by name or location, filtered, searched, etc. The tab is just a filtered subset of the Tags tab, but with less information shown.

Tags seem like a decent interface between automation and a human navigating points of interest. If bookmarks are tags but exclusively for human use, adding more structure and context would help. Maybe not to the extent of Ghidra's Program Trees, which allow program fragments to be re-arranged arbitrarily into a new BinaryView, but at least enough to support more bookmarks than you can count on your thumbs.

psifertex commented 3 years ago

The current intended use case for bookmarks is solely for the quick actions to navigate/assign using hotkeys. That's why they are otherwise a subset of the features of tags.

For more complicated sets of tagging the tag system is intended to be used, not just for automated interfaces.

That said, it doesn't mean we can't improve one or both interfaces, just laying out the original design and intention.

psifertex commented 3 years ago

We talked about this internally and we want to rename this issue instead to track some of the future plans for tags. As I said, we have no plans to change bookmarks, those are intended for a narrow use case.

That said, here's a list of features we would like to add to Tags:

Showing IL instead of assembly is unfortunately not going to happen any time remotely soon. That requires a large refactor because we don't currently keep IL in memory at all times for all functions and instead have to regenerate them on-demand. If you've got other suggestions though, be happy to add them.

amtal commented 3 years ago

Suggestion: show tag emoji in ILs as well as disassembly. Currently they don't always show up, e.g. the FUNctional Tags snippet's output isn't visible from HLIL.

psifertex commented 3 years ago

I just ran into this on stream today. You're right, that's super annoying. Really need them to show up in IL views.

Another feature I now really want is the ability to toggle on/off a column in the symbol list for tags. Would make TagTeam (the new plugin I'm about to push that's based on functional tags) much more useful.

ElykDeer commented 2 years ago

Just to add on to this: