Overview

Warning

Please note that the documentation and the API for angr management are highly in-flux. You will need to spend time reading the source code. Grep is your friend. If you have questions, please ask in the angr Discord server.

If you build something which uses an API and you want to make sure it doesn’t break, you can contribute a testcase for the API!

Main Window, Workspace, and Instance

  • First, the main_window. This is the QMainWindow instance for the application. It contains basic functions that correspond to top-level buttons, such as loading a binary.

  • Next, the workspace. This is a light object which coordinates the UI elements and manages the tabbed environment. You can use it to access any analysis-related GUI element, such as the disassembly view.

  • Finally, the instance. This is angr management’s data model. It contains mechanisms for synchronizing components on shared data sources, as well as logic for creating long-running jobs.

workspace is also available as an attribute on main_window and instance is available as an attribute on workspace. If you are programming in a namespace where none of these objects are available, you can import the angrmanagment.logic.GlobalInfo object, which contains a reference to main_window.