From 5ed12c4574ea5c3cb82aa6c7f77e3003d49442b2 Mon Sep 17 00:00:00 2001 From: Jordan Wiens Date: Tue, 28 Oct 2025 18:39:11 -0400 Subject: simplify CSS, light/dark switch on auto, fix RST tables to be html --- binaryninjaapi.h | 189 +++++++++++++++++++++++++++---------------------------- 1 file changed, 92 insertions(+), 97 deletions(-) (limited to 'binaryninjaapi.h') diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 0dae43cd..fa8ec3e4 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -3189,46 +3189,45 @@ namespace BinaryNinja { Uses of tokens include plugins that parse the output of an architecture (though parsing IL is recommended), or additionally, applying color schemes appropriately. - ========================== ============================================ - InstructionTextTokenType Description - ========================== ============================================ - AddressDisplayToken **Not emitted by architectures** - AnnotationToken **Not emitted by architectures** - ArgumentNameToken **Not emitted by architectures** - BeginMemoryOperandToken The start of memory operand - CharacterConstantToken A printable character - CodeRelativeAddressToken **Not emitted by architectures** - CodeSymbolToken **Not emitted by architectures** - DataSymbolToken **Not emitted by architectures** - EndMemoryOperandToken The end of a memory operand - ExternalSymbolToken **Not emitted by architectures** - FieldNameToken **Not emitted by architectures** - FloatingPointToken Floating point number - HexDumpByteValueToken **Not emitted by architectures** - HexDumpInvalidByteToken **Not emitted by architectures** - HexDumpSkippedByteToken **Not emitted by architectures** - HexDumpTextToken **Not emitted by architectures** - ImportToken **Not emitted by architectures** - IndirectImportToken **Not emitted by architectures** - InstructionToken The instruction mnemonic - IntegerToken Integers - KeywordToken **Not emitted by architectures** - LocalVariableToken **Not emitted by architectures** - StackVariableToken **Not emitted by architectures** - NameSpaceSeparatorToken **Not emitted by architectures** - NameSpaceToken **Not emitted by architectures** - OpcodeToken **Not emitted by architectures** - OperandSeparatorToken The comma or delimiter that separates tokens - PossibleAddressToken Integers that are likely addresses - RegisterToken Registers - StringToken **Not emitted by architectures** - StructOffsetToken **Not emitted by architectures** - TagToken **Not emitted by architectures** - TextToken Used for anything not of another type. - CommentToken Comments - TypeNameToken **Not emitted by architectures** - AddressSeparatorToken **Not emitted by architectures** - ========================== ============================================ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InstructionTextTokenTypeDescription
AddressDisplayTokenNot emitted by architectures
AnnotationTokenNot emitted by architectures
ArgumentNameTokenNot emitted by architectures
BeginMemoryOperandTokenThe start of memory operand
CharacterConstantTokenA printable character
CodeRelativeAddressTokenNot emitted by architectures
CodeSymbolTokenNot emitted by architectures
DataSymbolTokenNot emitted by architectures
EndMemoryOperandTokenThe end of a memory operand
ExternalSymbolTokenNot emitted by architectures
FieldNameTokenNot emitted by architectures
FloatingPointTokenFloating point number
HexDumpByteValueTokenNot emitted by architectures
HexDumpInvalidByteTokenNot emitted by architectures
HexDumpSkippedByteTokenNot emitted by architectures
HexDumpTextTokenNot emitted by architectures
ImportTokenNot emitted by architectures
IndirectImportTokenNot emitted by architectures
InstructionTokenThe instruction mnemonic
IntegerTokenIntegers
KeywordTokenNot emitted by architectures
LocalVariableTokenNot emitted by architectures
StackVariableTokenNot emitted by architectures
NameSpaceSeparatorTokenNot emitted by architectures
NameSpaceTokenNot emitted by architectures
OpcodeTokenNot emitted by architectures
OperandSeparatorTokenThe comma or delimiter that separates tokens
PossibleAddressTokenIntegers that are likely addresses
RegisterTokenRegisters
StringTokenNot emitted by architectures
StructOffsetTokenNot emitted by architectures
TagTokenNot emitted by architectures
TextTokenUsed for anything not of another type.
CommentTokenComments
TypeNameTokenNot emitted by architectures
AddressSeparatorTokenNot emitted by architectures
*/ struct InstructionTextToken { @@ -4837,19 +4836,18 @@ namespace BinaryNinja { /*! Symbols are defined as one of the following types: - =========================== ================================================================= - BNSymbolType Description - =========================== ================================================================= - FunctionSymbol Symbol for function that exists in the current binary - ImportAddressSymbol Symbol defined in the Import Address Table - ImportedFunctionSymbol Symbol for a function that is not defined in the current binary - DataSymbol Symbol for data in the current binary - ImportedDataSymbol Symbol for data that is not defined in the current binary - ExternalSymbol Symbols for data and code that reside outside the BinaryView - LibraryFunctionSymbol Symbols for functions identified as belonging to a shared library - SymbolicFunctionSymbol Symbols for functions without a concrete implementation or which have been abstractly represented - LocalLabelSymbol Symbol for a local label in the current binary - =========================== ================================================================= + + + + + + + + + + + +
BNSymbolTypeDescription
FunctionSymbolSymbol for function that exists in the current binary
ImportAddressSymbolSymbol defined in the Import Address Table
ImportedFunctionSymbolSymbol for a function that is not defined in the current binary
DataSymbolSymbol for data in the current binary
ImportedDataSymbolSymbol for data that is not defined in the current binary
ExternalSymbolSymbols for data and code that reside outside the BinaryView
LibraryFunctionSymbolSymbols for functions identified as belonging to a shared library
SymbolicFunctionSymbolSymbols for functions without a concrete implementation or which have been abstractly represented
LocalLabelSymbolSymbol for a local label in the current binary
\return Symbol type */ @@ -9432,18 +9430,17 @@ namespace BinaryNinja { If the instruction is a branch instruction architecture plugins should add a branch of the proper type: - ===================== =================================================== - BNBranchType Description - ===================== =================================================== - UnconditionalBranch Branch will always be taken - FalseBranch False branch condition - TrueBranch True branch condition - CallDestination Branch is a call instruction (Branch with Link) - FunctionReturn Branch returns from a function - SystemCall System call instruction - IndirectBranch Branch destination is a memory address or register - UnresolvedBranch Branch destination is an unknown address - ===================== =================================================== + + + + + + + + + + +
BNBranchTypeDescription
UnconditionalBranchBranch will always be taken
FalseBranchFalse branch condition
TrueBranchTrue branch condition
CallDestinationBranch is a call instruction (Branch with Link)
FunctionReturnBranch returns from a function
SystemCallSystem call instruction
IndirectBranchBranch destination is a memory address or register
UnresolvedBranchBranch destination is an unknown address
\param[in] data pointer to the instruction data to retrieve info for \param[in] addr address of the instruction data to retrieve info for @@ -18513,44 +18510,42 @@ namespace BinaryNinja { levels. The levels and their associated storage are shown in the following table. Default setting values are optional, and if specified, saved in the schema itself. - ================= ========================== ============== ============================================== - Setting Level Settings Scope Preference Storage - ================= ========================== ============== ============================================== - Default SettingsDefaultScope Lowest Settings Schema - User SettingsUserScope - /settings.json - Project SettingsProjectScope - /settings.json - Resource SettingsResourceScope Highest Raw BinaryView (Storage in BNDB) - ================= ========================== ============== ============================================== + + + + + + +
Setting LevelSettings ScopePreferenceStorage
DefaultSettingsDefaultScopeLowestSettings Schema
UserSettingsUserScope-/settings.json
ProjectSettingsProjectScope-/settings.json
ResourceSettingsResourceScopeHighestRaw BinaryView (Storage in BNDB)
Settings are identified by a key, which is a string in the form of . or .. . Groups provide a simple way to categorize settings. Sub-groups are optional and multiple sub-groups are allowed. When defining a settings group, the \c RegisterGroup method allows for specifying a UI friendly title for use in the Binary Ninja UI. Defining a new setting requires a unique setting key and a JSON string of property, value pairs. The following table describes the available properties and values. - ================== ====================================== ================== ======== ======================================================================= - Property JSON Data Type Prerequisite Optional {Allowed Values} and Notes - ================== ====================================== ================== ======== ======================================================================= - "title" string None No Concise Setting Title - "type" string None No {"array", "boolean", "number", "string", "object"} - "sorted" boolean "type" is "array" Yes Automatically sort list items (default is false) - "isSerialized" boolean "type" is "string" Yes Treat the string as a serialized JSON object - "enum" array : {string} "type" is "array" Yes Enumeration definitions - "enumDescriptions" array : {string} "type" is "array" Yes Enumeration descriptions that match "enum" array - "minValue" number "type" is "number" Yes Specify 0 to infer unsigned (default is signed) - "maxValue" number "type" is "number" Yes Values less than or equal to INT_MAX result in a QSpinBox UI element - "precision" number "type" is "number" Yes Specify precision for a QDoubleSpinBox - "default" {array, boolean, number, string, null} None Yes Specify optimal default value - "aliases" array : {string} None Yes Array of deprecated setting key(s) - "description" string None No Detailed setting description - "ignore" array : {string} None Yes {"SettingsUserScope", "SettingsProjectScope", "SettingsResourceScope"} - "message" string None Yes An optional message with additional emphasis - "readOnly" bool None Yes Only enforced by UI elements - "optional" bool None Yes Indicates setting can be null - "hidden" bool "type" is "string" Yes Indicates the UI should conceal the content. The "ignore" property is required to specify the applicable storage scopes - "requiresRestart" bool None Yes Enable restart notification in the UI upon change - "uiSelectionAction" string "type" is "string" Yes {"file", "directory", } Informs the UI to add a button to open a selection dialog or run a registered UIAction - "quickSettingsGroup" string None Yes Groups related items in the quick settings context menu using dividers to separate groups - ================== ====================================== ================== ======== ======================================================================= + + + + + + + + + + + + + + + + + + + + + + +
PropertyJSON Data TypePrerequisiteOptional{Allowed Values} and Notes
"title"stringNoneNoConcise Setting Title
"type"stringNoneNo{"array", "boolean", "number", "string", "object"}
"sorted"boolean"type" is "array"YesAutomatically sort list items (default is false)
"isSerialized"boolean"type" is "string"YesTreat the string as a serialized JSON object
"enum"array : {string}"type" is "array"YesEnumeration definitions
"enumDescriptions"array : {string}"type" is "array"YesEnumeration descriptions that match "enum" array
"minValue"number"type" is "number"YesSpecify 0 to infer unsigned (default is signed)
"maxValue"number"type" is "number"YesValues less than or equal to INT_MAX result in a QSpinBox UI element
"precision"number"type" is "number"YesSpecify precision for a QDoubleSpinBox
"default"{array, boolean, number, string, null}NoneYesSpecify optimal default value
"aliases"array : {string}NoneYesArray of deprecated setting key(s)
"description"stringNoneNoDetailed setting description
"ignore"array : {string}NoneYes{"SettingsUserScope", "SettingsProjectScope", "SettingsResourceScope"}
"message"stringNoneYesAn optional message with additional emphasis
"readOnly"boolNoneYesOnly enforced by UI elements
"optional"boolNoneYesIndicates setting can be null
"hidden"bool"type" is "string"YesIndicates the UI should conceal the content. The "ignore" property is required to specify the applicable storage scopes
"requiresRestart"boolNoneYesEnable restart notification in the UI upon change
"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
"quickSettingsGroup"stringNoneYesGroups related items in the quick settings context menu using dividers to separate groups
\note In order to facilitate deterministic analysis results, settings from the default schema that impact analysis are serialized from Default, User, and Project scope into Resource scope during initial BinaryView analysis. This allows an analysis database to be opened -- cgit v1.3.1