summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorJordan Wiens <github@psifertex.com>2025-10-21 19:25:02 -0400
committerJordan Wiens <github@psifertex.com>2025-10-21 19:25:02 -0400
commit058800a116bf25f1f215b758663366d4695f0e31 (patch)
tree7c1b3bbb1e22848fb5fc9c0caec7c530a4b647f4 /docs
parent75c6f01b56ff1e34dfac1a557088fb0ce7a36e05 (diff)
updated settings
Diffstat (limited to 'docs')
-rw-r--r--docs/guide/settings.md59
1 files changed, 39 insertions, 20 deletions
diff --git a/docs/guide/settings.md b/docs/guide/settings.md
index 0c39f74e..83dd742b 100644
--- a/docs/guide/settings.md
+++ b/docs/guide/settings.md
@@ -117,7 +117,6 @@ The setting will appear under the Quick Settings section in the Function Setting
| | | enum: Perform full analysis of the binary.|`enum`|`full`| | |
|analysis|Return Value Propagation|Propagate and use constant return values from functions in the caller in order to simplify downstream expressions.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.returnValuePropagation'>analysis.returnValuePropagation</a>|
|analysis|Auto Function Analysis Suppression|Enable suppressing analysis of automatically discovered functions.|`boolean`|`False`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.suppressNewAutoFunctionAnalysis'>analysis.suppressNewAutoFunctionAnalysis</a>|
-|analysis|Translate Windows CFG Calls|Attempt to identify and translate calls to `_guard_dispatch_icall_nop` to improve analysis of control flow guard binaries.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.translateWindowsCfgCalls'>analysis.translateWindowsCfgCalls</a>|
|analysis.conservative|Disallow Branch to String|Enable the ability to halt analysis of branch targets that fall within a string reference. This setting may be useful for malformed binaries.|`boolean`|`False`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.conservative.disallowBranchToString'>analysis.conservative.disallowBranchToString</a>|
|analysis.conservative|Solve Indirect Jump Tables in Writable Memory|When a jump table is found in writable memory, attempt to resolve its targets based on the bytes already present in memory.|`boolean`|`False`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.conservative.solveIndirectJumpTablesInWritableMemory'>analysis.conservative.solveIndirectJumpTablesInWritableMemory</a>|
|analysis.database|Purge Original Filename Path|When saving a database, remove all path information from the Original Filename field|`boolean`|`False`|[`SettingsProjectScope`, `SettingsUserScope`]|<a id='analysis.database.purgeOriginalFilenamePath'>analysis.database.purgeOriginalFilenamePath</a>|
@@ -132,20 +131,16 @@ The setting will appear under the Quick Settings section in the Function Setting
|analysis.efi|EFI Resolver|This analysis step resolves EFI protocol interfaces and propagates type information.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.efi.efiResolver'>analysis.efi.efiResolver</a>|
|analysis.guided|Enable Guided Analysis|Start function analysis in guided mode, requiring manual block selection before analyzing targets.|`boolean`|`False`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.guided.enable'>analysis.guided.enable</a>|
|analysis.guided|Enable Guided Analysis on Invalid Instructions|Enter guided mode for manual block selection when an invalid instruction is encountered.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.guided.triggers.invalidInstruction'>analysis.guided.triggers.invalidInstruction</a>|
-|analysis.hlil|Aggressive Condition Complexity Removal Threshold|High Level IL tuning parameter (deprecated).|`number`|`64`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.hlil.aggressiveConditionComplexityRemovalThreshold'>analysis.hlil.aggressiveConditionComplexityRemovalThreshold</a>|
|analysis.hlil|Code Duplication Limit|Maximum number of lines of code to duplicate to reduce control flow complexity.|`number`|`2`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.hlil.codeDuplicationLimit'>analysis.hlil.codeDuplicationLimit</a>|
|analysis.hlil|Control Flow Resolution Strategy|Method used for resolving control flow in HLIL.|`string`|`graphTransformation`|[]|<a id='analysis.hlil.controlFlowResolution'>analysis.hlil.controlFlowResolution</a>|
| | | enum: Use graph transformations to resolve control flow.|`enum`|`graphTransformation`| | |
|analysis.hlil|Graph Optimizer Limit|High Level IL tuning parameter.|`number`|`64`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.hlil.graphOptimizerLimit'>analysis.hlil.graphOptimizerLimit</a>|
-|analysis.hlil|Max Condition Complexity|High Level IL tuning parameter (deprecated).|`number`|`1024`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.hlil.maxConditionComplexity'>analysis.hlil.maxConditionComplexity</a>|
-|analysis.hlil|Max Condition Reduce Iterations|High Level IL tuning parameter (deprecated).|`number`|`1024`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.hlil.maxConditionReduceIterations'>analysis.hlil.maxConditionReduceIterations</a>|
|analysis.hlil|Maximum Expression Count|High Level IL tuning parameter.|`number`|`1048576`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.hlil.maxExpressionCount'>analysis.hlil.maxExpressionCount</a>|
|analysis.hlil|Max Intermediate Condition Complexity|High Level IL tuning parameter.|`number`|`1048576`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.hlil.maxIntermediateConditionComplexity'>analysis.hlil.maxIntermediateConditionComplexity</a>|
|analysis.hlil|Eliminate Pure Calls during HLIL Optimization|Whether or not pure calls (calls to functions with no side-effects) are removed during HLIL optimizations.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.hlil.pureCallElimination'>analysis.hlil.pureCallElimination</a>|
|analysis.hlil|Strict Memory Ordering|Prevents reordering of memory reads during HLIL optimization.|`boolean`|`False`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.hlil.strictMemoryOrdering'>analysis.hlil.strictMemoryOrdering</a>|
|analysis.hlil|Switch Case Node Threshold|High Level IL tuning parameter.|`number`|`4`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.hlil.switchCaseNodeThreshold'>analysis.hlil.switchCaseNodeThreshold</a>|
|analysis.hlil|Switch Case Value Count Threshold|High Level IL tuning parameter.|`number`|`6`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.hlil.switchCaseValueCountThreshold'>analysis.hlil.switchCaseValueCountThreshold</a>|
-|analysis.hlil|Target Max Condition Complexity|High Level IL tuning parameter (deprecated).|`number`|`16`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.hlil.targetMaxConditionComplexity'>analysis.hlil.targetMaxConditionComplexity</a>|
|analysis.limits|Advanced Analysis Cache Size|Controls the number of functions for which the most recent generated advanced analysis is cached. Large values may result in very high memory utilization.|`number`|`64`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.limits.cacheSize'>analysis.limits.cacheSize</a>|
|analysis.limits|Maximum Recursion Depth for Expression Value Computation|Maximum depth to recurse when computing the value for an expression via mlil ssa.|`number`|`512`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.limits.expressionValueComputeMaxDepth'>analysis.limits.expressionValueComputeMaxDepth</a>|
|analysis.limits|Max Function Analysis Time|Any functions that exceed this analysis time are deferred. A value of 0 disables this feature. The default value is 20 seconds. Time is specified in milliseconds.|`number`|`20000`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.limits.maxFunctionAnalysisTime'>analysis.limits.maxFunctionAnalysisTime</a>|
@@ -156,7 +151,7 @@ The setting will appear under the Quick Settings section in the Function Setting
|analysis.limits|Maximum String Length|The maximum string length that will be copied.|`number`|`16384`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.limits.maxStringLength'>analysis.limits.maxStringLength</a>|
|analysis.limits|Minimum String Length|The minimum length for strings created during auto-analysis|`number`|`4`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.limits.minStringLength'>analysis.limits.minStringLength</a>|
|analysis.limits|Maximum String Search|Maximum number of strings to find before giving up.|`number`|`1048576`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.limits.stringSearch'>analysis.limits.stringSearch</a>|
-|analysis.limits|Worker Thread Count|The number of worker threads available for concurrent analysis activities.|`number`|`15`|[`SettingsUserScope`]|<a id='analysis.limits.workerThreadCount'>analysis.limits.workerThreadCount</a>|
+|analysis.limits|Worker Thread Count|The number of worker threads available for concurrent analysis activities.|`number`|`11`|[`SettingsUserScope`]|<a id='analysis.limits.workerThreadCount'>analysis.limits.workerThreadCount</a>|
|analysis.linearSweep|Autorun Linear Sweep|Automatically run linear sweep when opening a binary for analysis.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.linearSweep.autorun'>analysis.linearSweep.autorun</a>|
|analysis.linearSweep|Control Flow Graph Analysis|Enable the control flow graph analysis (Analysis Phase 3) portion of linear sweep.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.linearSweep.controlFlowGraph'>analysis.linearSweep.controlFlowGraph</a>|
|analysis.linearSweep|Detailed Linear Sweep Log Information|Linear sweep generates additional log information at the InfoLog level.|`boolean`|`False`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.linearSweep.detailedLogInfo'>analysis.linearSweep.detailedLogInfo</a>|
@@ -164,6 +159,7 @@ The setting will appear under the Quick Settings section in the Function Setting
|analysis.linearSweep|High Entropy Threshold for Linear Sweep|Regions in the binary at or above this threshold are not included in the search space for linear sweep.|`number`|`0.82`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.linearSweep.entropyThresholdHigh'>analysis.linearSweep.entropyThresholdHigh</a>|
|analysis.linearSweep|Low Entropy Threshold for Linear Sweep|Regions in the binary at or below this threshold are not included in the search space for linear sweep.|`number`|`0.025`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.linearSweep.entropyThresholdLow'>analysis.linearSweep.entropyThresholdLow</a>|
|analysis.linearSweep|Max Linear Sweep Work Queues|The number of binary regions under concurrent analysis.|`number`|`64`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.linearSweep.maxWorkQueues'>analysis.linearSweep.maxWorkQueues</a>|
+|analysis.linearSweep|NOP-Prefixed Functions|Allow linear sweep to identify functions that begin with NOP instructions. This is useful for detecting compiler-generated alignment padding or hand-written assembly functions.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.linearSweep.nopPrefixedFunctions'>analysis.linearSweep.nopPrefixedFunctions</a>|
|analysis.linearSweep|Permissive Linear Sweep|Permissive linear sweep searches all executable segments regardless of read/write permissions. By default, linear sweep searches sections that are ReadOnlyCodeSectionSemantics, or if no sections are defined, segments that are read/execute.|`boolean`|`False`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.linearSweep.permissive'>analysis.linearSweep.permissive</a>|
|analysis.mainFunctionDetection|Program's Exit Symbol List|A list of common 'exit' symbols to search for when 'Navigate to Program's Main' is enabled.|`array`|[`_cexit`, `_exit`, `_o__cexit`, `_o_exit`, `common_exit`, `doexit`, `exit`]|[`SettingsUserScope`]|<a id='analysis.mainFunctionDetection.exitSymbols'>analysis.mainFunctionDetection.exitSymbols</a>|
|analysis.mainFunctionDetection|Program's Main Symbol List|A list of common 'main' symbols to search for when 'Navigate to Program's Main' is enabled.|`array`|[`WinMain`, `_main`, `main`, `wWinMain`]|[`SettingsUserScope`]|<a id='analysis.mainFunctionDetection.mainSymbols'>analysis.mainFunctionDetection.mainSymbols</a>|
@@ -197,28 +193,22 @@ The setting will appear under the Quick Settings section in the Function Setting
|analysis.unicode|UTF-32 Encoding|Whether or not to consider UTF-32 code points when searching for strings.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.unicode.utf32'>analysis.unicode.utf32</a>|
|analysis.unicode|UTF-8 Encoding|Whether or not to consider UTF-8 code points when searching for strings.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.unicode.utf8'>analysis.unicode.utf8</a>|
|analysis.warp|WARP Apply Matched|This analysis step applies WARP info to matched functions...|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.warp.apply'>analysis.warp.apply</a>|
+|analysis.warp|WARP Fetcher|This analysis step attempts to fetch WARP functions from network containers after the initial analysis is complete...|`boolean`|`False`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.warp.fetcher'>analysis.warp.fetcher</a>|
|analysis.warp|WARP GUID Generator|This analysis step generates the GUID for all analyzed functions...|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.warp.guid'>analysis.warp.guid</a>|
-|analysis.warp|Load Bundled Files|Whether to load bundled WARP files on startup. Turn this off if you want to manually load them.|`boolean`|`True`|[`SettingsUserScope`]|<a id='analysis.warp.loadBundledFiles'>analysis.warp.loadBundledFiles</a>|
-|analysis.warp|Load User Files|Whether to load user WARP files on startup. Turn this off if you want to manually load them.|`boolean`|`True`|[`SettingsUserScope`]|<a id='analysis.warp.loadUserFiles'>analysis.warp.loadUserFiles</a>|
|analysis.warp|WARP Matcher|This analysis step attempts to find matching WARP functions after the initial analysis is complete...|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.warp.matcher'>analysis.warp.matcher</a>|
-|analysis.warp|Maximum Function Length|Functions above this length will not be matched. A value of 0 will disable this check.|`number`|`0`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.warp.maximumFunctionLength'>analysis.warp.maximumFunctionLength</a>|
-|analysis.warp|Minimum Function Length|Functions below this length will not be matched.|`number`|`0`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.warp.minimumFunctionLength'>analysis.warp.minimumFunctionLength</a>|
-|analysis.warp|Minimum Matched Constraints|When function constraints are checked the amount of constraints matched must be at-least this.|`number`|`1`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.warp.minimumMatchedConstraints'>analysis.warp.minimumMatchedConstraints</a>|
-|analysis.warp|Server API Key|The API key to use for the selected WARP server, if not specified you will be unable to push data, and may be rate limited.|`string`|`None`|[`SettingsUserScope`]|<a id='analysis.warp.serverApiKey'>analysis.warp.serverApiKey</a>|
-|analysis.warp|Server URL|The WARP server to use.|`string`|`https://warp.binary.ninja`|[`SettingsUserScope`]|<a id='analysis.warp.serverUrl'>analysis.warp.serverUrl</a>|
-|analysis.warp|Trivial Function Adjacent Constraints Allowed|When function constraints are checked if this is enabled functions can match based off trivial adjacent functions.|`boolean`|`False`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.warp.trivialFunctionAdjacentAllowed'>analysis.warp.trivialFunctionAdjacentAllowed</a>|
-|analysis.warp|Trivial Function Length|Functions below this length in bytes will be required to match on constraints.|`number`|`20`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.warp.trivialFunctionLength'>analysis.warp.trivialFunctionLength</a>|
|analysis.workflows|Function Workflow|Specifies the workflow to be used for function-level analysis, including tasks such as disassembly and IL transformations.|`string`|`core.function.metaAnalysis`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.workflows.functionWorkflow'>analysis.workflows.functionWorkflow</a>|
| | | enum: This workflow defines the base function analysis provided by Binary Ninja.|`enum`|`core.function.baseAnalysis`| | |
-| | | enum: This workflow defines the adaptive function analysis for Binary Ninja, enabling adaptive composability of the default function analysis.|`enum`|`core.function.metaAnalysis`| | |
-| | | enum: Enhanced analysis for Objective-C code.|`enum`|`core.function.objectiveC`| | |
+| | | enum: Enhanced analysis for Objective-C code.|`enum`|`core.function.metaAnalysis`| | |
|analysis.workflows|Module Workflow|Specifies the workflow to be used for module-level analysis, focusing on processing module-level data and coordinating function analyses.|`string`|`core.module.metaAnalysis`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='analysis.workflows.moduleWorkflow'>analysis.workflows.moduleWorkflow</a>|
| | | enum: This workflow defines the base module analysis for Binary Ninja.|`enum`|`core.module.baseAnalysis`| | |
| | | enum: This workflow defines the adaptive module analysis for Binary Ninja, enabling adaptive composability of the default module analysis.|`enum`|`core.module.metaAnalysis`| | |
|arch.aarch64|AArch64 Alignment Requirement|Require instructions be on 4-byte aligned addresses to be disassembled.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='arch.aarch64.disassembly.alignRequired'>arch.aarch64.disassembly.alignRequired</a>|
|arch.aarch64|AArch64 Prefer Intrinsics for Vector Operations|Prefer generating calls to intrinsics (where one is available) to lifting vector operations as unrolled loops (where available). Note that not all vector operations are currently lifted as either intrinsics or unrolled loops.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='arch.aarch64.disassembly.preferIntrinsics'>arch.aarch64.disassembly.preferIntrinsics</a>|
+|arch.hexagon|Hide Constant Extenders|Hide constant extenders in disassembly.|`boolean`|`False`|[`SettingsUserScope`]|<a id='arch.hexagon.disassembly.hideConstExtenders'>arch.hexagon.disassembly.hideConstExtenders</a>|
+|arch.hexagon|Display Immediate Values In Hex|Display integer immediate values in hexadecimal format.|`boolean`|`False`|[`SettingsUserScope`]|<a id='arch.hexagon.disassembly.integersAsHex'>arch.hexagon.disassembly.integersAsHex</a>|
|arch.mips|MIPS Disassembly Pseudo-Op|Enable use of pseudo-op instructions in MIPS disassembly.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='arch.mips.disassembly.pseudoOps'>arch.mips.disassembly.pseudoOps</a>|
|arch.x86|x86 Disassembly Case|Specify the case for opcodes, operands, and registers.|`boolean`|`True`|[`SettingsUserScope`]|<a id='arch.x86.disassembly.lowercase'>arch.x86.disassembly.lowercase</a>|
+|arch.x86|x86 Disassembly Support for MPX|Enable support for MPX extensions in the disassembler.|`boolean`|`False`|[`SettingsUserScope`]|<a id='arch.x86.disassembly.mpx'>arch.x86.disassembly.mpx</a>|
|arch.x86|x86 Disassembly Separator|Specify the token separator between operands.|`string`|`, `|[`SettingsUserScope`]|<a id='arch.x86.disassembly.separator'>arch.x86.disassembly.separator</a>|
|arch.x86|x86 Disassembly Syntax|Specify disassembly syntax for the x86/x86_64 architectures.|`string`|`BN_INTEL`|[`SettingsUserScope`]|<a id='arch.x86.disassembly.syntax'>arch.x86.disassembly.syntax</a>|
| | | enum: Sets the disassembly syntax to a simplified Intel format.|`enum`|`BN_INTEL`| | |
@@ -236,13 +226,17 @@ The setting will appear under the Quick Settings section in the Function Setting
|core.function|Conditional No Returns|This analysis step attempts to identify no return calls that are conditional based upon passed in parameters.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='core.function.analyzeConditionalNoReturns'>core.function.analyzeConditionalNoReturns</a>|
|core.function|Dataflow-Based Return Analysis|This analysis step transforms LLIL_RET instructions into other control flow based on dataflow information obtained from MLIL.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='core.function.analyzeReturns'>core.function.analyzeReturns</a>|
|core.function|Tail Call Heuristics|This analysis step attempts to recover function starts that may be obscured by tail call optimization (TCO). The stack pointer, and other heuristics are applied to branch targets within a function to determine if they are function starts.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='core.function.analyzeTailCalls'>core.function.analyzeTailCalls</a>|
+|core.function|Obj-C: Analyze Message Sends|Analyze inline objc_msgSend calls, including applying call type adjustments and resolving to direct calls (if enabled)|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='core.function.objectiveC.analyzeMessageSends'>core.function.objectiveC.analyzeMessageSends</a>|
+|core.function|Obj-C: Remove reference counting calls|Remove calls to objc_retain / objc_release / objc_autorelease to simplify the resulting higher-level ILs|`boolean`|`False`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='core.function.objectiveC.removeMemoryManagement'>core.function.objectiveC.removeMemoryManagement</a>|
+|core.function|Obj-C: Adjust return types of [super init…] calls|Adjust the return type of calls to objc_msgSendSuper2 where the selector is in the init family.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='core.function.objectiveC.types.superInit'>core.function.objectiveC.types.superInit</a>|
|core.function|Tail Call Translation|This analysis step transforms LLIL_JUMP instructions into LLIL_TAILCALL instructions when the jump target is a function start.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='core.function.translateTailCalls'>core.function.translateTailCalls</a>|
+|core.function|Windows CFG Translation|Identifies and translates calls to Windows Control Flow Guard dispatch functions (e.g., _guard_dispatch_icall_nop) to direct calls, improving analysis accuracy for CFG-protected binaries.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='core.function.windowsCfgCallTranslation'>core.function.windowsCfgCallTranslation</a>|
|core.module|Configure Extended Analysis|This analysis step configures the extended analysis.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='core.module.configureExtendedAnalysis'>core.module.configureExtendedAnalysis</a>|
|core.module|Initial Pointer Analysis|This analysis step creates pointers for relocation entries in the binary.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='core.module.initialPointerAnalysis'>core.module.initialPointerAnalysis</a>|
|core.module|Load Debug Info|This analysis step attempts to parse and load debug information from internal and external sources.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='core.module.loadDebugInfo'>core.module.loadDebugInfo</a>|
|core.module|Strings Analysis|Enable automatic detection and analysis of strings within the binary.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='core.module.stringsAnalysis'>core.module.stringsAnalysis</a>|
|corePlugins|RTTI Plugin|Enable the built-in RTTI plugin.|`boolean`|`True`|[`SettingsUserScope`]|<a id='corePlugins.RTTI'>corePlugins.RTTI</a>|
-|corePlugins|BinExport Plugin|Enable the (experimental) BinExport plugin for exporting to BinDiff and other tools.|`boolean`|`False`|[`SettingsUserScope`]|<a id='corePlugins.binexport'>corePlugins.binexport</a>|
+|corePlugins|BinExport Plugin|Enable the BinExport plugin for exporting to BinDiff and other tools.|`boolean`|`True`|[`SettingsUserScope`]|<a id='corePlugins.binexport'>corePlugins.binexport</a>|
|corePlugins|Crypto Plugin|Enable the built-in crypto plugin.|`boolean`|`True`|[`SettingsUserScope`]|<a id='corePlugins.crypto'>corePlugins.crypto</a>|
|corePlugins|Database Viewer (Debug)|Enable the built-in Database Viewer plugin. Be aware this is a debug feature and may not be well-behaved.|`boolean`|`False`|[`SettingsUserScope`]|<a id='corePlugins.databaseViewer'>corePlugins.databaseViewer</a>|
|corePlugins|Debugger|Enable the built-in debugger plugin.|`boolean`|`True`|[`SettingsUserScope`]|<a id='corePlugins.debugger'>corePlugins.debugger</a>|
@@ -260,6 +254,7 @@ The setting will appear under the Quick Settings section in the Function Setting
|corePlugins.architectures|AArch64 Architecture|Enable the built-in AArch64 architecture module.|`boolean`|`True`|[`SettingsUserScope`]|<a id='corePlugins.architectures.aarch64'>corePlugins.architectures.aarch64</a>|
|corePlugins.architectures|ARMv7 Architecture|Enable the built-in ARMv7 architecture module.|`boolean`|`True`|[`SettingsUserScope`]|<a id='corePlugins.architectures.armv7'>corePlugins.architectures.armv7</a>|
|corePlugins.architectures|C-SKY / M-Core Architectures|Enable the built-in C-SKY / M-CORE architecture modules. (Ultimate Only)|`boolean`|`True`|[`SettingsUserScope`]|<a id='corePlugins.architectures.csky'>corePlugins.architectures.csky</a>|
+|corePlugins.architectures|Hexagon Architecture|Enable the built-in Hexagon architecture module. (Ultimate Only)|`boolean`|`True`|[`SettingsUserScope`]|<a id='corePlugins.architectures.hexagon'>corePlugins.architectures.hexagon</a>|
|corePlugins.architectures|MIPS Architecture|Enable the built-in MIPS architecture module.|`boolean`|`True`|[`SettingsUserScope`]|<a id='corePlugins.architectures.mips'>corePlugins.architectures.mips</a>|
|corePlugins.architectures|MSP430 Architecture|Enable the built-in MSP430 architecture module.|`boolean`|`True`|[`SettingsUserScope`]|<a id='corePlugins.architectures.msp430'>corePlugins.architectures.msp430</a>|
|corePlugins.architectures|nanoMIPS Architecture|Enable the built-in nanoMIPS architecture module. (Ultimate Only)|`boolean`|`True`|[`SettingsUserScope`]|<a id='corePlugins.architectures.nanomips'>corePlugins.architectures.nanomips</a>|
@@ -306,10 +301,14 @@ The setting will appear under the Quick Settings section in the Function Setting
| | | |`enum`|`AESFileSecretsProvider`| | |
|enterprise.server|Enterprise Server Additional Headers|Additional headers to send with requests to Enterprise Servers. Must be a valid JSON string of the form {"https://example.com:443": {"x-foo": "bar"}} (Ultimate Only)|`string`|`{}`|[`SettingsUserScope`]|<a id='enterprise.server.additionalHeaders'>enterprise.server.additionalHeaders</a>|
|enterprise.server|Enterprise Server URL|Base url for connected Enterprise Server. (Ultimate Only)|`string`| |[`SettingsUserScope`]|<a id='enterprise.server.url'>enterprise.server.url</a>|
+|files.container|Auto-Open Single Container Path|Automatically open if there is exactly one path with no required input; otherwise request interactive selection/parameters.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsUserScope`]|<a id='files.container.autoOpen'>files.container.autoOpen</a>|
+|files.container|Default Container Passwords|List of passwords to attempt when opening password-protected containers. Passwords are tried in order before prompting the user.|`array`|[`123456`, `admin`, `crackmes.de`, `crackmes.one`, `flare`, `hackthebox`, `infected`, `password`, `secret`, `test`]|[`SettingsProjectScope`, `SettingsUserScope`]|<a id='files.container.defaultPasswords'>files.container.defaultPasswords</a>|
+|files.container|Container Detection Mode|Controls how nested container formats are detected and handled when opening files.|`string`|`Full`|[`SettingsProjectScope`, `SettingsUserScope`]|<a id='files.container.mode'>files.container.mode</a>|
+| | | enum: Open the root file as-is (no unwrapping).|`enum`|`Disabled`| | |
+| | | enum: Discover all paths (build the full context tree) before requesting selection.|`enum`|`Full`| | |
|files.elf|Enable ARM BE8 binary detection|Enable ARM BE8 binary detection for mixed little/big endianness for code/data|`boolean`|`True`|[`SettingsUserScope`]|<a id='files.elf.detectARMBE8Binary'>files.elf.detectARMBE8Binary</a>|
|files.elf|Maximum ELF Section Header Count|Maximum number of entries to include in section header array|`number`|`100`|[`SettingsResourceScope`, `SettingsUserScope`]|<a id='files.elf.maxSectionHeaderCount'>files.elf.maxSectionHeaderCount</a>|
|files.pic|Auto Rebase Load File|Automatically rebase a relocatable image which has a default load address of zero to 4MB for 64-bit binaries, or 64KB for 32-bit binaries.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsUserScope`]|<a id='files.pic.autoRebase'>files.pic.autoRebase</a>|
-|files.text|Auto Detect and Parse Binary-Encoded Text Formats|Automatically detect and parse text-based file formats that encode binary data when opening a file. Supported formats include Intel Hex, Motorola S-Record, and TI-TXT.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsUserScope`]|<a id='files.text.autoDetectFormat'>files.text.autoDetectFormat</a>|
|files.text|Merge Adjacent Segments in Parsed Text Formats|Merges contiguous segments into a single memory region when parsing binary-encoded text formats. Memory holes are padded with zeros.|`boolean`|`True`|[`SettingsProjectScope`, `SettingsUserScope`]|<a id='files.text.mergeSegments'>files.text.mergeSegments</a>|
|files.universal|Universal Mach-O Architecture Preference|Specify an architecture preference for automatic loading of a Mach-O file from a Universal archive. By default, the first object file in the listing is loaded.|`array`|[]|[`SettingsUserScope`]|<a id='files.universal.architecturePreference'>files.universal.architecturePreference</a>|
|network|Debuginfod Server URLs|Servers to use for fetching DWARF debug info for files with a .note.gnu.build-id section.|`array`|[]|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='network.debuginfodServers'>network.debuginfodServers</a>|
@@ -390,7 +389,6 @@ The setting will appear under the Quick Settings section in the Function Setting
| | | |`enum`|`CoreFlowGraphLayout`| | |
|rendering.strings|Maximum String Annotation Length|The maximum substring length that will be shown in string annotations.|`number`|`512`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='rendering.strings.maxAnnotationLength'>rendering.strings.maxAnnotationLength</a>|
|rendering.strings|String Annotation Wrapping Width|The minimum width Strings will be wrapped to in the view. If less than minimum content length, Strings will wrap to minimum content length.|`number`|`40`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='rendering.strings.wrappingWidth'>rendering.strings.wrappingWidth</a>|
-|rendering.variables|Show Variable Placement Information in Variable List|Show information about the placement of function variables in the variable list side bar.|`boolean`|`False`|[`SettingsUserScope`]|<a id='rendering.variables.showPlacementInformation'>rendering.variables.showPlacementInformation</a>|
|snippets|Indentation Syntax Highlighting|String to use for indentation in snippets (tip: to use a tab, copy/paste a tab from another text field and paste here)|`string`|` `|[`SettingsUserScope`]|<a id='snippets.indentation'>snippets.indentation</a>|
|snippets|Syntax Highlighting|Whether to syntax highlight (may be performance problems with very large snippets and the current highlighting implementation.)|`boolean`|`True`|[`SettingsUserScope`]|<a id='snippets.syntaxHighlight'>snippets.syntaxHighlight</a>|
|triage|Triage Analysis Mode|Controls the amount of analysis performed on functions when opening for triage.|`string`|`basic`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='triage.analysisMode'>triage.analysisMode</a>|
@@ -405,6 +403,10 @@ The setting will appear under the Quick Settings section in the Function Setting
|triage|Always Prefer Triage Summary View|Always prefer opening binaries in Triage Summary view, even when performing full analysis.|`boolean`|`False`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='triage.preferSummaryView'>triage.preferSummaryView</a>|
|triage|Prefer Triage Summary View for Raw Files|Prefer opening raw files in Triage Summary view.|`boolean`|`False`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='triage.preferSummaryViewForRaw'>triage.preferSummaryViewForRaw</a>|
|ui|Allow Welcome Popup|By default, the welcome window will only show up when it has changed and this install has not seen it. However, disabling this setting will prevent even that.|`boolean`|`True`|[`SettingsUserScope`]|<a id='ui.allowWelcome'>ui.allowWelcome</a>|
+|ui|Default Cross References Interface|Default interface to use when the Show Cross References at Selection action is performed.|`string`|`pinned`|[`SettingsUserScope`]|<a id='ui.defaultXrefInterface'>ui.defaultXrefInterface</a>|
+| | | enum: Create a new Pinned Cross References tab and focus it.|`enum`|`pinned`| | |
+| | | enum: Focus the Cross References sidebar.|`enum`|`sidebar`| | |
+| | | enum: Pop up a modal dialog containing the cross references.|`enum`|`dialog`| | |
|ui|File Contents Lock|Lock the file contents to prevent accidental edits from the UI. File modification via API and menu based patching is explicitly allowed while the lock is enabled.|`boolean`|`True`|[`SettingsUserScope`]|<a id='ui.fileContentsLock'>ui.fileContentsLock</a>|
|ui|Input Field History Limit|Controls the number of history entries to store for input dialogs.|`number`|`50`|[`SettingsUserScope`]|<a id='ui.inputHistoryCount'>ui.inputHistoryCount</a>|
|ui|Manual Tooltip|Enable to prevent tooltips from showing without &lt;ctrl&gt; being held.|`boolean`|`False`|[`SettingsUserScope`]|<a id='ui.manualTooltip'>ui.manualTooltip</a>|
@@ -527,6 +529,7 @@ The setting will appear under the Quick Settings section in the Function Setting
|ui.theme|Random Theme on Startup|Randomize the theme on application startup.|`boolean`|`False`|[`SettingsUserScope`]|<a id='ui.theme.randomize'>ui.theme.randomize</a>|
|ui.theme|Transient Scrollbars|Enables transient scrollbar support provided by Qt.|`boolean`|`False`|[`SettingsUserScope`]|<a id='ui.theme.transientScrollbars'>ui.theme.transientScrollbars</a>|
|ui.types|Check for Type Errors Before Accept|When changing a type in the change type dialog, check your input for type errors before pressing Accept. This may cause slowdowns in analyses containing large numbers of times.|`boolean`|`True`|[`SettingsUserScope`]|<a id='ui.types.checkParse'>ui.types.checkParse</a>|
+|ui.types|Max Auto Type Dialog Features Count|The maximum number of types allowed for enabling auto-parsing and completion features.|`number`|`50000`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='ui.types.maxAutoFeaturesCount'>ui.types.maxAutoFeaturesCount</a>|
|ui.types|Match Types by Substring|When changing a type in the change type dialog, if this setting is enabled all substrings will be matched instead of only startsWith style matching|`boolean`|`False`|[`SettingsUserScope`]|<a id='ui.types.substring'>ui.types.substring</a>|
|ui.view|Comment Width|Maximum width of comment before wrapping, in characters. A value of 0x0 means no wrapping.|`number`|`80`|[`SettingsUserScope`]|<a id='ui.view.common.commentWidth'>ui.view.common.commentWidth</a>|
|ui.view|Disassembly Width|Maximum width of disassembly output, in characters. Not used in cases where disassembly width is automatically calculated, e.g. Linear View.|`number`|`80`|[`SettingsUserScope`]|<a id='ui.view.common.disassemblyWidth'>ui.view.common.disassemblyWidth</a>|
@@ -558,9 +561,25 @@ The setting will appear under the Quick Settings section in the Function Setting
|ui.view|Maximum Lines for Wrapping in Editor|The maximum number of lines in rendered types before line wrapping is always disabled.|`number`|`10000`|[`SettingsUserScope`]|<a id='ui.view.types.maxLinesForWrapping'>ui.view.types.maxLinesForWrapping</a>|
|ui.view|Maximum Types in Editor|The maximum number of types to render in the type editor in Types View.|`number`|`100`|[`SettingsUserScope`]|<a id='ui.view.types.maxTypesInEditor'>ui.view.types.maxTypesInEditor</a>|
|ui.view|Possible Value Set Function Complexity Limit|Function complexity limit for showing possible value set information. Complexity is calculated as the total number of outgoing edges in the function's MLIL SSA form.|`number`|`25`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='ui.view.variables.pvsComplexityLimit'>ui.view.variables.pvsComplexityLimit</a>|
+|ui.view|Show Variable Placement Information in Variable List|Show information about the placement of function variables in the variable list side bar.|`boolean`|`False`|[`SettingsUserScope`]|<a id='ui.view.variables.showPlacementInformation'>ui.view.variables.showPlacementInformation</a>|
+|ui.view|Workflow Sequential Graph|Display workflow as a linear sequence instead of composite structure.|`boolean`|`False`|[`SettingsUserScope`]|<a id='ui.view.workflow.sequentialGraph'>ui.view.workflow.sequentialGraph</a>|
|ui.window|File Path in Window Title|Controls whether the window title includes the full file path for the current file.|`boolean`|`False`|[`SettingsUserScope`]|<a id='ui.window.title.showPath'>ui.window.title.showPath</a>|
|updates|Update Channel Preferences|Select update channel and version.|`string`|`None`|[]|<a id='updates.channelPreferences'>updates.channelPreferences</a>|
|updates|Show All Versions|Show all versions that are available for the current update channel in the UI.|`boolean`|`False`|[`SettingsUserScope`]|<a id='updates.showAllVersions'>updates.showAllVersions</a>|
|updates|Use Enterprise Server For Updates|Use the enterprise server to check for updates. (Ultimate Only)|`boolean`|`False`|[`SettingsUserScope`]|<a id='updates.useEnterpriseServer'>updates.useEnterpriseServer</a>|
|user|Email|The email that will be shown when collaborating with other users.|`string`| |[`SettingsUserScope`]|<a id='user.email'>user.email</a>|
|user|Name|The name that will be shown when collaborating with other users.|`string`| |[`SettingsUserScope`]|<a id='user.name'>user.name</a>|
+|warp.container|Load Bundled Files|Whether to load bundled WARP files on startup. Turn this off if you want to manually load them.|`boolean`|`True`|[`SettingsUserScope`]|<a id='warp.container.loadBundledFiles'>warp.container.loadBundledFiles</a>|
+|warp.container|Load User Files|Whether to load user WARP files on startup. Turn this off if you want to manually load them.|`boolean`|`True`|[`SettingsUserScope`]|<a id='warp.container.loadUserFiles'>warp.container.loadUserFiles</a>|
+|warp.container|Secondary Server API Key||`string`|`None`|[`SettingsUserScope`]|<a id='warp.container.secondServerApiKey'>warp.container.secondServerApiKey</a>|
+|warp.container|Secondary Server URL||`string`|`None`|[`SettingsUserScope`]|<a id='warp.container.secondServerUrl'>warp.container.secondServerUrl</a>|
+|warp.container|Server API Key|The API key to use for the selected WARP server, if not specified you will be unable to push data, and may be rate limited.|`string`|`None`|[`SettingsUserScope`]|<a id='warp.container.serverApiKey'>warp.container.serverApiKey</a>|
+|warp.container|Server URL|The WARP server to use.|`string`|`https://warp.binary.ninja`|[`SettingsUserScope`]|<a id='warp.container.serverUrl'>warp.container.serverUrl</a>|
+|warp.fetcher|Allowed Source Tags|The source tags that are allowed to be fetched from the server. Any source that does not have at least one of these tags will be ignored.|`array`|[`official`, `trusted`]|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='warp.fetcher.allowedSourceTags'>warp.fetcher.allowedSourceTags</a>|
+|warp.fetcher|Fetch Batch Limit|The maximum number of functions to fetch in a single batch. This is used to limit the amount of functions to fetch at once, lowering this value will make the fetch process more comprehensive at the cost of more network requests.|`number`|`100`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='warp.fetcher.fetchBatchSize'>warp.fetcher.fetchBatchSize</a>|
+|warp.matcher|Maximum Function Length|Functions above this length will not be matched. A value of 0 will disable this check.|`number`|`0`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='warp.matcher.maximumFunctionLength'>warp.matcher.maximumFunctionLength</a>|
+|warp.matcher|Maximum Possible Functions|When matching any function that has a list of possible functions greater than this number will be skipped. A value of 0 will disable this check.|`number`|`1000`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='warp.matcher.maximumPossibleFunctions'>warp.matcher.maximumPossibleFunctions</a>|
+|warp.matcher|Minimum Function Length|Functions below this length will not be matched.|`number`|`0`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='warp.matcher.minimumFunctionLength'>warp.matcher.minimumFunctionLength</a>|
+|warp.matcher|Minimum Matched Constraints|When function constraints are checked the amount of constraints matched must be at-least this.|`number`|`1`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='warp.matcher.minimumMatchedConstraints'>warp.matcher.minimumMatchedConstraints</a>|
+|warp.matcher|Trivial Function Adjacent Constraints Allowed|When function constraints are checked if this is enabled functions can match based off trivial adjacent functions.|`boolean`|`False`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='warp.matcher.trivialFunctionAdjacentAllowed'>warp.matcher.trivialFunctionAdjacentAllowed</a>|
+|warp.matcher|Trivial Function Length|Functions below this length in bytes will be required to match on constraints.|`number`|`20`|[`SettingsProjectScope`, `SettingsResourceScope`, `SettingsUserScope`]|<a id='warp.matcher.trivialFunctionLength'>warp.matcher.trivialFunctionLength</a>| \ No newline at end of file