Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: Expose IDA's navigation stack as a tree instead of a list that can be interacted with #9

Open
arizvisa opened this issue Sep 23, 2018 · 0 comments

Comments

@arizvisa
Copy link
Owner

This was also something that was experimented with during "toolbag" as a way of showing a user what they've currently visited and what tags are available at different locations. This was scrapped when the plugin was named "idascripts" due to the desire to keep gui-related components out of the repository, but made its way into "toolbag" as the infinitely awesome "history" view. Its only issue is that it required manual input to add locations to it.

It'd be nice, however, if there was a similar (but internal) data structure that could be used to store locations as the user navigates through the database. This way a user can immediately see what tags are available at different positions instead of requiring they manually list them via database.tags or function.tags.

IDA's navigation stack is simply that, a stack. However, code that is compiled is stored as a tree, and when executed is best represented as a graph. Therefore, if we have some kind of tree-like structure ("trie"), then this might simplify the sharing and recalling of navigation history within a database.

This component can then actually be used to replace IDA's concept of "marks". This way instead of marking a specific address in the database, the user can create and use a "trie" for each reversing project. It is suspected that this will vastly improve the way users keep track of things they have reversed within the database. This way when the user opens up a database, they can immediately list the different tries (or projects) they have previously created, select one of the projects they were working on, and then immediately pick up where they left off.

Again, this would allow a user to keep track of the different things they visited while working on a specific reversing problem and more importantly keep track of which tags they created for each node within the "trie". If this automatically updating "trie" is implemented, then maybe at some point we can create another plugin based on it that shows it as a history graph along with the tags that were made at each position in the same way the author of "toolbag" implemented it.

@arizvisa arizvisa changed the title Feature: Expose IDA's navigation stack as a trie instead of a list that can be interacted with Feature: Expose IDA's navigation stack as a tree instead of a list that can be interacted with Oct 8, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant