|
1 | 1 | # Settings
|
2 | 2 |
|
3 |
| -## UI |
| 3 | +## Settings UI |
4 | 4 |
|
5 | 5 | { width="800" }
|
6 | 6 |
|
7 |
| -Binary Ninja provides various settings which are available via the `[CMD/CTRL] ,` hotkey for *User* settings and the `[CMD/CTRL] .` hotkey for *Resource* settings which apply to the current BinaryView. These settings allow a wide variety of customization of the user interface and functional aspects of the analysis environment. |
| 7 | +Binary Ninja's settings are accessible via `[CMD/CTRL] ,` or `[CMD/CTRL] .` (which auto-selects the current BinaryView's scope). These settings provide extensive customization options for both the user interface and analysis functionality. |
8 | 8 |
|
9 |
| -Several search keywords are available in the settings UI. Those include: |
10 |
| - |
11 |
| -- `@default` - Shows settings that are in the default scope |
12 |
| -- `@user` - Shows only settings that the user has changed |
13 |
| -- `@project` - Shows settings scoped to the current project |
14 |
| -- `@resource` - Shows settings scoped to the current resource (for example if you used open-with-options and changed settings) |
15 |
| -- `@modified` - Shows settings that are changed from their default values |
| 9 | +## Settings Scopes |
16 | 10 |
|
17 | 11 | There are several scopes available for settings:
|
18 | 12 |
|
19 | 13 | * **User Settings** - Settings that apply globally and override the defaults. These settings are stored in `settings.json` within the [User Folder](./index.md#user-folder).
|
20 | 14 | * **Project Settings** - Settings which only apply if a project is opened. These settings are stored in `.binaryninja/settings.json` within a Project Folder. Project Folders can exist anywhere except within the User Folder. These settings apply to all files contained in the Project Folder and override the default and user settings. In order to activate this feature, select the Project Settings tab and a clickable "Open Project" link will appear at the top right of the view. Clicking this will create `.binaryninja/settings.json` in the folder of the currently selected binary view. If it already exists, this link will be replaced with the path of the project folder.
|
21 |
| -* **Resource Settings** - Settings which only apply to a specific BinaryView object within a file. These settings persist in a Binary Ninja Database (.bndb) database or ephemerally in a BinaryView object if a database does not yet exist for a file. |
| 15 | +* **Resource Settings** - Settings which only apply to a specific resource (BinaryView or Function) within a file. These settings persist in a Binary Ninja Database (.bndb) database or ephemerally in a BinaryView/Function object if a database does not yet exist for a file. |
22 | 16 |
|
23 | 17 | ???+ Info "Tip"
|
24 |
| - Both the _Project_ and _Resource_ tabs have a drop down indicator (▾) that can be clicked to select the project or resource whose settings you want to adjust. |
| 18 | + Both the _Project_ and _Resource_ tabs have a drop down indicator (▾) for selecting which project or resource settings to modify. |
| 19 | + |
| 20 | +### Filter Keywords |
| 21 | + |
| 22 | +The settings UI supports several filter tags to help find specific settings: |
| 23 | + |
| 24 | +- `@default` - Shows settings that are in the default scope |
| 25 | +- `@user` - Shows settings changed by the user |
| 26 | +- `@project` - Shows project-scoped settings |
| 27 | +- `@resource` - Shows resource-scoped settings (BinaryView or Function-specific) |
| 28 | +- `@modified` - Shows settings changed from their default values |
25 | 29 |
|
26 | 30 | All settings are uniquely identified with an identifier string. Identifiers are available in the settings UI via the context menu and are useful for finding settings using the search box and for [programmatically](https://api.binary.ninja/binaryninja.settings-module.html) interacting with settings.
|
27 | 31 |
|
28 |
| -**Note**: In order to facilitate reproducible analysis results, when opening a file for the first time, all of the analysis settings are automatically serialized into the _Resource Setting_ scope. This prevents subsequent _User_ and _Project_ setting modifications from unintentionally changing existing analysis results. |
| 32 | +## Resource Settings (BinaryView) |
| 33 | + |
| 34 | +To facilitate reproducible analysis results, when opening a file for the first time, all analysis settings are automatically serialized into the BinaryView's Resource Setting scope. This prevents subsequent User and Project setting modifications from unintentionally changing existing settings which may influence analysis results. |
| 35 | + |
| 36 | +### Accessing BinaryView Resource Settings |
| 37 | + |
| 38 | +BinaryView Resource settings can be accessed through: |
| 39 | + |
| 40 | +* **Settings UI**: Use `[CMD/CTRL] .` to open Resource Settings (automatically selects the current BinaryView) |
| 41 | +* **Programmatically**: Use the [Settings API](https://api.binary.ninja/binaryninja.settings-module.html) with a BinaryView object as the resource parameter |
| 42 | + |
| 43 | +## Resource Settings (Function) |
| 44 | + |
| 45 | +Binary Ninja supports function-level settings for fine-grained control over analysis parameters. Unlike BinaryView Resource settings which store a complete copy of all analysis settings, Function Resource settings use an inheritance-based storage model. Each function inherits settings from its BinaryView by default, and only stores settings in its own cache when customization is needed for that specific function. |
| 46 | + |
| 47 | +### Accessing Function Resource Settings |
| 48 | + |
| 49 | +Function Resource settings can be accessed through: |
| 50 | + |
| 51 | +* **Context Menu**: Right-click in any analysis view and select "Function Settings" to access a customizable submenu of boolean settings controlled by the Quick Settings system |
| 52 | +* **Programmatically**: Use the [Settings API](https://api.binary.ninja/binaryninja.settings-module.html) with a Function object as the resource parameter |
| 53 | + |
| 54 | +!!! note |
| 55 | + Function-specific Resource settings are not currently accessible in the Settings UI Resource dropdown tab. |
| 56 | + |
| 57 | +## Quick Settings |
| 58 | + |
| 59 | +Quick Settings provide streamlined access to frequently used boolean analysis settings directly from the context menu within analysis views. This mechanism is designed for efficient per-function customization without requiring the full Settings UI. |
| 60 | + |
| 61 | +By default, no settings are included in the context menus. Individual settings must be explicitly marked for inclusion. |
| 62 | + |
| 63 | +### Using Quick Settings in Context Menus |
| 64 | + |
| 65 | +1. Right-click within any analysis view (Graph, Linear, etc.). |
| 66 | +2. Two submenus may appear: |
| 67 | + - **Function Analysis** – Contains settings auto-generated by the Workflow system, used to control activity eligibility. |
| 68 | + - **Function Settings** – Contains manually added analysis settings for quick toggling in the Function Resource scope. |
| 69 | +3. Toggle settings as needed. These changes apply only to the current function’s settings scope. |
| 70 | +4. Select "Reset Settings" to clear the function settings and revert to inherited settings from the BinaryView. |
| 71 | + |
| 72 | +### Adding Quick Settings |
| 73 | + |
| 74 | +1. Open the Settings UI |
| 75 | +2. Right-click any boolean setting |
| 76 | +3. Select “Add to Quick Settings” to add it to the quick access menu |
| 77 | + |
| 78 | +The setting will appear under the `Function Analysis` or the `Function Settings` submenu in applicable context menus. |
| 79 | + |
| 80 | +### Removing Quick Settings |
| 81 | + |
| 82 | +1. Open the Settings UI |
| 83 | +2. Right-click on any boolean setting |
| 84 | +3. Uncheck “Add to Quick Settings” to remove it from the quick access menu |
| 85 | + |
| 86 | +### Reset Quick Settings |
| 87 | + |
| 88 | +* Right-click within the Settings dialog. |
| 89 | +* Select “Reset All Quick Settings” |
29 | 90 |
|
30 |
| -## All Settings |
| 91 | +## Settings Reference |
31 | 92 |
|
32 | 93 | |Category|Setting|Description|Type|Default|Scope|Key|
|
33 | 94 | |---|---|---|---|---|---|---|
|
|
0 commit comments