# angr Management
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
This is the GUI for angr.
Launch it and analyze some binaries!
Some screenshots:
[![Disassembly](screenshots/disassembly.png)](https://github.com/angr/angr-management/blob/master/screenshots/disassembly.png)
[![Decompilation](screenshots/decompilation.png)](https://github.com/angr/angr-management/blob/master/screenshots/decompilation.png)
## Installation
### Portable, pre-built executable
The easiest way to run angr-management is by grabbing a bundled release from the releases page: https://github.com/angr/angr-management/releases
Builds can be extracted and then run from anywhere.
Note that builds are currently unsigned.
### From PyPI
To install angr-management, use pip:
```
pip install angr-management
```
angr-management can then be run with the command `angr-management`.
### Development Install
See [angr-dev](https://github.com/angr/angr-dev) for how to set up a development environment for the angr suite.
angr-management is included by default and checked out to `angr-management` directory.
If you encounter dependency issues, re-running `setup.sh` or `setup.bat` from angr-dev will ensure all dependencies are installed.
angr-management can then be run with `angr-management` or `python start.py`.
**FLIRT signatures**: For now, please manually clone FLIRT signatures by running `git clone --recurse-submodules https://github.com/angr/angr-management`, which will clone the `flirt_signatures` submodule.
## Usage
### Shortcuts
- Load a new binary: ```Ctrl+O```
- Load a new Docker Image ```Ctrl+Shift+O```
- Load a Trace File ```Ctrl+Shift+T```
- Save angr database... : ```Ctrl+S```
- Save angr database as... : ```Ctrl+Shift+S```
- Decompile: ```F5```
- Documentation: ```Alt+H```
- Next Tab: ```Ctrl+Tab```
- Previous Tab: ```Ctrl+Shift+Tab```
## Configuration
Configuration files locations vary by platform.
- Windows: `~\AppData\Local\angr-management\config.toml`
- macOS: `~/Library/Preferences/angr-management/config.toml`
- Linux: `~/.config/angr-management/config.toml`
## Plugins
Plugins may be installed by placing a subdirectory under `plugins`. The directory must contain an `__init__.py` like that in `TestPlugin`:
```
from .test_plugin import TestPlugin
PLUGIN_CLS_NAME = TestPlugin.__name__
```
This also allows you to import a plugin class from another package entirely. The plugin itself should inherit from `BasePlugin`. Callbacks and events are a work in progress, so the API is subject to change. See `TestPlugin` for an example of a multithreaded plugin sample.
## Scripting
Take a look at https://docs.angr.io/extending-angr/angr_management!
## Building with PyInstaller
To build a portable executable using PyInstaller, install angr management into a python envrionment with the `pyinstaller` extra.
Do not install anything in editable mode (pip's `-e`), as PyInstaller currently [fails to bundle](https://github.com/pyinstaller/pyinstaller/issues/7524) modules installed with editable mode.
Then, run `pyinstaller angr-management.spec`.
If things go wrong, the best bet is to reference the nightly build pipeline and the [PyInstaller docs](https://pyinstaller.org/en/stable/).
The CI environment that produces nightly builds is at `.github/workflows/nightly-build.yml` and `.github/workflows/nightly-build.sh`.
Raw data
{
"_id": null,
"home_page": "https://github.com/angr/angr-management",
"name": "angr-management",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/3e/d7/ab70f729c1e08728b506c099c168ca8016f0a35765a3182ed9b8e1420268/angr-management-9.2.98.tar.gz",
"platform": null,
"description": "# angr Management\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\nThis is the GUI for angr.\nLaunch it and analyze some binaries!\n\nSome screenshots:\n\n[![Disassembly](screenshots/disassembly.png)](https://github.com/angr/angr-management/blob/master/screenshots/disassembly.png)\n[![Decompilation](screenshots/decompilation.png)](https://github.com/angr/angr-management/blob/master/screenshots/decompilation.png)\n\n## Installation\n\n### Portable, pre-built executable\n\nThe easiest way to run angr-management is by grabbing a bundled release from the releases page: https://github.com/angr/angr-management/releases\n\nBuilds can be extracted and then run from anywhere.\nNote that builds are currently unsigned.\n\n### From PyPI\n\nTo install angr-management, use pip:\n\n```\npip install angr-management\n```\n\nangr-management can then be run with the command `angr-management`.\n\n### Development Install\n\nSee [angr-dev](https://github.com/angr/angr-dev) for how to set up a development environment for the angr suite.\nangr-management is included by default and checked out to `angr-management` directory.\nIf you encounter dependency issues, re-running `setup.sh` or `setup.bat` from angr-dev will ensure all dependencies are installed.\n\nangr-management can then be run with `angr-management` or `python start.py`.\n\n**FLIRT signatures**: For now, please manually clone FLIRT signatures by running `git clone --recurse-submodules https://github.com/angr/angr-management`, which will clone the `flirt_signatures` submodule.\n\n## Usage\n\n### Shortcuts\n- Load a new binary: ```Ctrl+O```\n- Load a new Docker Image ```Ctrl+Shift+O```\n- Load a Trace File ```Ctrl+Shift+T```\n- Save angr database... : ```Ctrl+S```\n- Save angr database as... : ```Ctrl+Shift+S```\n- Decompile: ```F5```\n- Documentation: ```Alt+H```\n\n- Next Tab: ```Ctrl+Tab```\n- Previous Tab: ```Ctrl+Shift+Tab```\n\n## Configuration\n\nConfiguration files locations vary by platform.\n\n- Windows: `~\\AppData\\Local\\angr-management\\config.toml`\n- macOS: `~/Library/Preferences/angr-management/config.toml`\n- Linux: `~/.config/angr-management/config.toml`\n\n## Plugins\n\nPlugins may be installed by placing a subdirectory under `plugins`. The directory must contain an `__init__.py` like that in `TestPlugin`:\n```\nfrom .test_plugin import TestPlugin\nPLUGIN_CLS_NAME = TestPlugin.__name__\n```\n\nThis also allows you to import a plugin class from another package entirely. The plugin itself should inherit from `BasePlugin`. Callbacks and events are a work in progress, so the API is subject to change. See `TestPlugin` for an example of a multithreaded plugin sample.\n\n## Scripting\n\nTake a look at https://docs.angr.io/extending-angr/angr_management!\n\n## Building with PyInstaller\nTo build a portable executable using PyInstaller, install angr management into a python envrionment with the `pyinstaller` extra.\nDo not install anything in editable mode (pip's `-e`), as PyInstaller currently [fails to bundle](https://github.com/pyinstaller/pyinstaller/issues/7524) modules installed with editable mode.\nThen, run `pyinstaller angr-management.spec`.\n\nIf things go wrong, the best bet is to reference the nightly build pipeline and the [PyInstaller docs](https://pyinstaller.org/en/stable/).\nThe CI environment that produces nightly builds is at `.github/workflows/nightly-build.yml` and `.github/workflows/nightly-build.sh`.\n",
"bugtrack_url": null,
"license": "BSD-2-Clause",
"summary": "GUI for angr",
"version": "9.2.98",
"project_urls": {
"Homepage": "https://github.com/angr/angr-management"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5c07a1ab9ddec6f99b8206ee0e478ee300f89b0f1bfba234716d53274ee60afe",
"md5": "982ea0e017627a6dc64411766bb798f7",
"sha256": "39635d4a0fae5cdec12d95ed8fc857124e94f89f6af088435f27b7aad74690fa"
},
"downloads": -1,
"filename": "angr_management-9.2.98-py3-none-any.whl",
"has_sig": false,
"md5_digest": "982ea0e017627a6dc64411766bb798f7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 1443414,
"upload_time": "2024-04-09T17:14:59",
"upload_time_iso_8601": "2024-04-09T17:14:59.541513Z",
"url": "https://files.pythonhosted.org/packages/5c/07/a1ab9ddec6f99b8206ee0e478ee300f89b0f1bfba234716d53274ee60afe/angr_management-9.2.98-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3ed7ab70f729c1e08728b506c099c168ca8016f0a35765a3182ed9b8e1420268",
"md5": "eaf10c43c19d65b01416d5735eb0c3c7",
"sha256": "4471c7faae832bb0b8bc08b1b8c20dde23540a6bbb6796ddaa1bcbbe60dd3e0d"
},
"downloads": -1,
"filename": "angr-management-9.2.98.tar.gz",
"has_sig": false,
"md5_digest": "eaf10c43c19d65b01416d5735eb0c3c7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 1302868,
"upload_time": "2024-04-09T17:15:25",
"upload_time_iso_8601": "2024-04-09T17:15:25.608616Z",
"url": "https://files.pythonhosted.org/packages/3e/d7/ab70f729c1e08728b506c099c168ca8016f0a35765a3182ed9b8e1420268/angr-management-9.2.98.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-09 17:15:25",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "angr",
"github_project": "angr-management",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "angr-management"
}