You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Guided Analysis provides granular control over which basic blocks are included or excluded from analysis. It is especially useful for analyzing obfuscated code, troubleshooting analysis issues, or focusing on specific execution paths while excluding irrelevant code.
6
+
7
+
## Modes of Operation
8
+
9
+
Guided Analysis operates in two primary modes:
10
+
11
+
**Automatic Mode**: Binary Ninja automatically enters guided analysis when encountering problems like invalid instructions. When this happens, direct branch targets are not followed and IL is generated only for the current set of blocks. If new information becomes available that resolves the original trigger condition, the function will reanalyze and may exit guided mode automatically.
12
+
13
+
**Manual Mode**: Manually enable guided analysis to precisely control analyzed blocks. Analysis begins with only the entry block, requiring explicit manual addition of further blocks.
-**`analysis.guided.enable`**: Manually start function analysis in guided mode (default: false)
21
+
-**`analysis.guided.triggers.invalidInstruction`**: Automatically enter guided mode when invalid instructions are encountered (default: true)
22
+
23
+
### Manual Activation
24
+
25
+
Set the `analysis.guided.enable` setting to `true` for a function. This will cause only the initial entry basic block to appear, requiring you to manually add additional blocks. It's also possible to enter guided mode by right-clicking on any existing block and using the Halt Disassembly action, discussed later.
26
+
27
+
## Working with Guided Analysis
28
+
29
+
### UI Indicators
30
+
31
+
When guided analysis is active, the UI will show a special indicator at the top of the function. This helps you identify when you are in guided mode and which blocks are available for analysis. The indicator includes a clickable link to exit guided mode, which disables the `analysis.guided.enable` setting and any trigger settings to prevent automatic re-entry into guided mode.
The guided analysis menu actions are only available in the **Disassembly** view. These actions control direct outgoing edges from basic blocks - indirect branches that use solvers and data flow analysis cannot be controlled through guided analysis.
38
+
39
+
-**Continue Disassembly**: Right-click on halted blocks to resume analysis of their branch targets
40
+
-**Halt Disassembly**: Right-click on any existing block to stop analysis of its branch targets. This allows you to focus on specific blocks without automatic expansion.
-**Payload extraction**: Focus on malicious functionality while ignoring wrapper code
63
+
-**Command & control**: Trace communication logic through specific execution paths
64
+
65
+
### Performance & Debugging
66
+
-**Large binary analysis**: Reduce analysis time by focusing on critical sections
67
+
-**Analysis issues**: Isolate problematic regions when Binary Ninja's automatic analysis fails
68
+
-**Incremental analysis**: Gradually expand analysis scope as understanding improves
69
+
70
+
71
+
## API Reference
72
+
73
+
Guided analysis can be controlled programmatically through a dedicated Python API, supporting custom analysis scripts and plugins. Refer to the Python API documentation for detailed usage instructions.
0 commit comments