Display Modes
The Disassembly View supports two primary display modes:- Graph View
- Linear View
Control Flow Graph Visualization
- Visual representation of basic blocks
- Color-coded edges (true/false/direct jumps)
- Block relationships at a glance
- Zoom and pan controls
- Minimap for navigation
- Understanding program flow
- Identifying loops and conditionals
- Finding code patterns
Space or click the view mode button.
Representation Levels
View assembly code at different abstraction levels:Machine Code
Machine Code
Native assembly instructions for the target architecture.Use when: You need to see exact CPU instructions.
Lifter IR (VEX)
Lifter IR (VEX)
VEX intermediate representation used by angr internally.Use when: Debugging angr analyses or understanding lifting.
AIL (angr Intermediate Language)
AIL (angr Intermediate Language)
Higher-level representation closer to C code.Use when: Analyzing program logic at a higher level.
- View → View Machine Code
- View → View Lifter IR
- View → View AIL
- Or use the command palette (
Ctrl+Shift+P)
Graph View Features
Navigation
Minimap
The minimap provides:- Bird’s-eye view of entire function
- Current viewport indicator (red rectangle)
- Quick navigation by clicking
- Visual function complexity indicator
Edge Colors
Edges are color-coded to show control flow:| Color | Meaning |
|---|---|
| Blue (Cyan) | True branch / conditional taken |
| Red | False branch / conditional not taken |
| Gray | Direct jump / unconditional |
| Orange | Exception edge |
| Yellow/Gold | Back edge / loop |
Block Highlighting
- Gray border: Normal block
- Dark border: Selected block
- Blue background: Selected instruction
- Colored backgrounds: User-defined highlights
Linear View Features
Navigation
- Scroll: Mouse wheel or scrollbar
- Jump: Press
Gand enter address - Search:
Ctrl+Fto find instructions - Page Up/Down: Navigate by page
Address Display
Each line shows:- Address: Memory address in hex
- Bytes: Raw instruction bytes (optional)
- Mnemonic: Instruction name
- Operands: Instruction arguments
- Comments: User annotations
Smart Highlighting
Smart highlighting shows relationships between code elements:- Variable Highlighting
- Text Highlighting
Click on a variable to highlight:
- All uses of the same variable
- Definitions and assignments
- Related memory operations
A or use Disassembly: Toggle Smart HighlightingDisplay Options
Addresses
Toggle address display:- Show: Addresses visible before each instruction
- Hide: More compact view, better for reading code
Variables
Control variable display:Show Variables
Display variable names instead of registers/offsets
Show Identifiers
Show variable IDs for disambiguation
- Disassembly: Toggle Variables
- Disassembly: Toggle Variable Identifiers
Exception Edges
Control display of exception handling:- Show: Display exception edges and exception-only blocks
- Hide: Cleaner graph, focus on normal flow
Context Menus
Instruction Context Menu
Right-click on an instruction:Navigation
Navigation
Analysis
Analysis
- Decompile function
- Run dependency analysis
- View function documentation
Modification
Modification
- Add comment
- Rename label
- Patch instruction
- Set breakpoint
Debugging
Debugging
- Toggle execution breakpoint
- Create new state here
- Set as find/avoid address
Label Context Menu
Right-click on a label or function name:- Rename function/label
- Jump to references
- Show function info
- Copy address
Annotations
The disassembly view displays various annotations:Comments
Add comments to instructions:- Click on instruction (or press
;) - Type your comment
- Press Enter to save
- Inline: Appear after instruction
- Block: Appear before basic block
- Function: Appear before function
Cross-References
XREF annotations show:
- Where functions are called from
- Where data is accessed
- Jump sources
Breakpoints
Active breakpoints shown with:- Red dot icon
- Highlighted instruction
- Tooltip with breakpoint details
Hooks
Hooked addresses marked with:- Hook icon
- Custom background color
- Hook type in tooltip
Keyboard Shortcuts
| Key | Action |
|---|---|
G | Jump to address |
Space | Toggle graph/linear view |
Tab | Switch to pseudocode |
; | Add/edit comment |
N | Rename label |
X | Show cross-references |
A | Toggle smart highlighting |
C | Define as code |
U | Undefine code |
Alt+Left | Navigate back |
Alt+Right | Navigate forward |
Esc | Navigate back |
Working with Functions
Displaying Functions
- From Functions View: Double-click function
- By Address: Press
Gand enter address - From References: Click on call/jump target
- From History: Use
Alt+Left/Right
Function Information
The status bar shows:- Current function name
- Function address
- Function size
- Number of basic blocks
Defining Functions
If code isn’t recognized as a function:- Navigate to the address
- Use Analysis → Define Function
- Or right-click and select “Define Function”
Variable Recovery
The disassembly view integrates variable information:- Fast Mode
- Accurate Mode
Quick variable recovery:
- Register-based variables
- Stack variables with simple offsets
- Minimal type inference
Patching Instructions
Modify assembly code directly:View Synchronization
Synchronize multiple disassembly views:- Open multiple disassembly views
- Right-click → “Synchronize with”
- Select target view
- Cursor and selection stay in sync
- Compare different functions
- View same code at different levels
- Multi-monitor analysis
Performance Tips
Large Functions
- Use linear view for very large functions
- Disable minimap if slow
- Hide exception edges to simplify graph
Complex Graphs
- Zoom out for overview
- Use jump history instead of scrolling
- Consider decompilation for readability
Next Steps
Decompilation
Learn about the pseudocode view
Debugging
Debug binaries with breakpoints
Patching
Modify and patch binaries
Configuration
Customize disassembly colors and fonts