Skip to content

adds primus integration#36

Merged
gitoleg merged 14 commits into
masterfrom
add-primus-intergration
Sep 13, 2018
Merged

adds primus integration#36
gitoleg merged 14 commits into
masterfrom
add-primus-intergration

Conversation

@ivg
Copy link
Copy Markdown
Member

@ivg ivg commented Sep 13, 2018

This PR implements GUI along with the low-level facilities to enable parsing, processing, and visualizing observations produced during Primus microexecutions of a program.

On the plumbing level we have added a robust sexp parsing library (utils/sexp.py) and a tracing framework on top of it (utils/trace.py), that loads a parser and provides decorators for event processors and filters.

On top of the plumbing level we implemented a Qt5 tree model, that reflects Primus observations into Qt MVC abstraction. Finally, we added a Tree widget and a control widget that selects observations and renders them as a clickable tree.

The widgets are embedded into IDA and are integrated with various subsystems, such as IDA Debugger, so that we can load traces and step through executed instructions, or just jump to instruction from a corresponding observation.

The majority of the code is totally independent on IDA (sexp parsing, tracing framework, Qt model/views) so they could be moved from this repository to bap-python in the future.

@ivg ivg requested a review from gitoleg September 13, 2018 12:33
@ivg
Copy link
Copy Markdown
Member Author

ivg commented Sep 13, 2018

@gitoleg, please review and familiarize yourself with the new code. I would also like you to test that everything works correctly on your IDA. Once you're sure please merge it.

ivg added 2 commits September 13, 2018 10:10
it was passing more parameters than the receiver was expecting
this code shall not be here
@gitoleg gitoleg merged commit f1cdd95 into master Sep 13, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants