General Questions
What is angr Management?
What is angr Management?
- Interactive disassembly (graph and linear views)
- Decompilation to pseudocode
- Symbolic execution
- Control flow graph visualization
- Cross-reference analysis
- AI-assisted analysis features
What platforms are supported?
What platforms are supported?
- Linux (Ubuntu, Debian, Fedora, Arch, etc.)
- macOS (10.13 or later)
- Windows (10 or later)
What binary formats are supported?
What binary formats are supported?
- ELF (Linux executables and libraries)
- PE (Windows executables and DLLs)
- Mach-O (macOS executables and frameworks)
- COFF objects
- CGC (DARPA Cyber Grand Challenge binaries)
- Firmware images and raw binary blobs
What architectures are supported?
What architectures are supported?
- x86 and x86-64 (best supported)
- ARM and ARM64/AArch64
- MIPS (32 and 64-bit)
- PowerPC
- And many others through the archinfo library
Is angr Management free and open source?
Is angr Management free and open source?
- Use it for any purpose (commercial or personal)
- Modify the source code
- Contribute improvements back to the project
Installation & Setup
How do I install angr Management?
How do I install angr Management?
What are the system requirements?
What are the system requirements?
- Python 3.10 or later
- 4GB RAM
- 2GB free disk space
- Python 3.11 or later
- 16GB RAM or more
- 10GB free disk space
- Multi-core processor
How do I launch angr Management?
How do I launch angr Management?
Why am I getting PySide6 errors?
Why am I getting PySide6 errors?
-
Ensure you have system dependencies:
- Ubuntu/Debian:
sudo apt-get install python3-dev libxcb-xinerama0 - macOS:
xcode-select --install
- Ubuntu/Debian:
-
Install PySide6 separately first:
- Use a clean virtual environment
- Check that you’re using Python 3.10 or later
Using angr Management
How do I load a binary for analysis?
How do I load a binary for analysis?
- File Menu: File → Load a new binary (
Ctrl+O) - Command Line:
python -m angrmanagement /path/to/binary - Drag and Drop: Drag a binary file into the angr Management window
- Detect the binary format and architecture
- Generate an initial CFG (if enabled)
- Identify entry points
- Load FLIRT signatures for library recognition
How do I decompile a function?
How do I decompile a function?
- Navigate to the function in the Disassembly view
- Press
F5or select Analyze → Decompile - The Pseudocode view will open with the decompiled C-like code
- Double-click a function in the Functions view
- Right-click a function and select “Decompile”
- Use the Command Palette (
Ctrl+Shift+P) and search for “decompile”
How do I rename variables and functions?
How do I rename variables and functions?
- Navigate to the function
- Press
Nin the Disassembly view - Enter the new name
- Click on a variable
- Press
N - Enter the new name
- Click on a variable in Pseudocode view
- Press
Y - Specify the new type
What's the difference between Graph and Linear disassembly?
What's the difference between Graph and Linear disassembly?
- Shows control flow as a flowchart
- Visual representation of branches and loops
- Better for understanding program logic
- Uses more screen space
- Traditional sequential instruction listing
- More compact view
- Better for examining specific instruction sequences
- Easier to navigate with keyboard
Tab in the Disassembly view to switch between them. Create a new view with Ctrl+N.How do I save my analysis?
How do I save my analysis?
- Save:
Ctrl+S- saves to current database file - Save As:
Ctrl+Shift+S- saves to a new file
- Analysis results (CFG, decompilation, etc.)
- Function names and comments
- Variable types and names
- Breakpoints and patches
How do I use symbolic execution?
How do I use symbolic execution?
- Open View → Symbolic Execution
- Click “New State” to create an initial symbolic state
- Set execution options:
- Start address
- Find addresses (goals)
- Avoid addresses (paths to skip)
- Click “Execute” to start
- Monitor progress in the States view
- Set breakpoints with
F2if needed
F7 to step and F9 to continue execution.What are the AI-assisted features?
What are the AI-assisted features?
- Variable Name Suggestions: AI suggests meaningful variable names
- Function Name Suggestions: Infers function purposes and suggests names
- Variable Type Inference: Suggests appropriate types for variables
- Function Summarization: Generates natural language descriptions
- Decompilation Refinement: Improves decompiled code quality
Ctrl+I for “Refine All”.Note: AI features may require configuration and API access to language models.Advanced Features
How do I analyze obfuscated binaries?
How do I analyze obfuscated binaries?
- CFG Recovery: Use aggressive CFG options (F4)
- Deobfuscation: Check if plugins exist for specific obfuscation types
- Manual Analysis: Use the Hex view and Disassembly view together
- Symbolic Execution: May help understand opaque predicates
- Python Console: Write custom analysis scripts via View → Console
Can I write custom analyses?
Can I write custom analyses?
- Python Console: Access via View → Console for interactive scripting
- Plugins: Write plugins to add new features and views
- Direct angr API: Access the full angr API through the console
How do I use the Command Palette?
How do I use the Command Palette?
Ctrl+Shift+P) provides quick access to all commands:- Press
Ctrl+Shift+Pto open - Type to search for commands (fuzzy search supported)
- Use arrow keys to navigate
- Press Enter to execute
What plugins are available?
What plugins are available?
- BinSync: Collaborative reverse engineering
- Precise Diffing: Advanced binary diffing
- Value Search: Search for specific values in memory
How do I export analysis results?
How do I export analysis results?
- Pseudocode: Copy from the Pseudocode view
- Patches: File → Save patched binary as…
- Database: Save as .adb to preserve all analysis
- Screenshots: Use your OS screenshot functionality
- Python Scripts: Write custom export logic in the Console
Troubleshooting
Why is analysis taking so long?
Why is analysis taking so long?
- Binary Size: Larger binaries take longer
- Analysis Scope: Full-binary CFG vs. targeted analysis
- System Resources: More RAM and CPU cores help
- Complexity: Obfuscated code takes longer
- Use targeted analysis on specific functions
- Disable automatic CFG generation
- Save and reload from .adb files
- Close unused views
- Adjust analysis options in Preferences
Why is the decompilation incorrect?
Why is the decompilation incorrect?
- Optimization: Heavily optimized code is harder to decompile
- Obfuscation: Intentionally obscured code
- Missing Type Info: Without symbols, types must be inferred
- Unusual Patterns: Non-standard code patterns
- Manually fixing variable types (Y key)
- Renaming variables (N key)
- Using AI refinement features
- Adjusting decompilation settings
- Comparing with disassembly view
How do I report bugs or request features?
How do I report bugs or request features?
-
GitHub Issues: https://github.com/angr/angr-management/issues
- Search existing issues first
- Include version info:
pip show angr-management - Provide steps to reproduce
- Include relevant logs
-
Community Discussion:
- angr Slack: Get invite at https://angr.io
- GitHub Discussions
- Pull Requests: Contributions are welcome!
Learning Resources
Where can I learn more about angr?
Where can I learn more about angr?
- angr Documentation: https://docs.angr.io
- angr Management Docs: https://angr-management.readthedocs.io
- angr API Docs: https://angr.io/api-doc/
- angr examples: https://github.com/angr/angr-examples
- angr CTF: https://github.com/angr/angr-ctf
- Blog posts and tutorials from the community
- angr Slack workspace
- GitHub issues and discussions
- Stack Overflow (tag: angr)
Are there any tutorials or courses?
Are there any tutorials or courses?
- angr CTF: Hands-on challenges designed to teach angr
- Documentation Examples: The docs include many practical examples
- Conference Talks: Search for angr presentations on YouTube
- Community Tutorials: Blog posts and writeups from users
- Source Code: Reading the angr Management source is educational