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
Copy file name to clipboardExpand all lines: binaryninjaapi.h
+6-2Lines changed: 6 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -17022,8 +17022,9 @@ namespace BinaryNinja {
17022
17022
"readOnly" bool None Yes Only enforced by UI elements
17023
17023
"optional" bool None Yes Indicates setting can be null
17024
17024
"hidden" bool "type" is "string" Yes Indicates the UI should conceal the content. The "ignore" property is required to specify the applicable storage scopes
17025
-
"requiresRestart bool None Yes Enable restart notification in the UI upon change
17025
+
"requiresRestart" bool None Yes Enable restart notification in the UI upon change
17026
17026
"uiSelectionAction" string "type" is "string" Yes {"file", "directory", <Registered UIAction Name>} Informs the UI to add a button to open a selection dialog or run a registered UIAction
17027
+
"quickSettingsGroup" string None Yes Informs the submenu name in the UI when added to quick settings context menu
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
0 commit comments