Loading...
Searching...
No Matches
BinaryNinja Namespace Reference

Namespaces

namespace  Collaboration
namespace  Unicode
namespace  Http
namespace  Enterprise
 API for interacting with Enterprise features, such as communicating with the Enterprise server.

Classes

class  RefCountObject
class  CoreRefCountObject
class  StaticCoreRefCountObject
class  Ref
class  CallbackRef
class  ConfidenceBase
class  Confidence
class  Confidence< Ref< T > >
class  LogListener
class  Logger
 Logger is a class allowing scoped logging to the console. More...
class  LogRegistry
 A class allowing registering and retrieving Loggers. More...
struct  VersionInfo
struct  ProgressContext
class  DataBuffer
class  TemporaryFile
 TemporaryFile is used for creating temporary files, stored (temporarily) in the system's default temporary file directory. More...
class  NavigationHandler
class  User
struct  InstructionTextToken
 `InstructionTextToken` is used to tell the core about the various components in the disassembly views. More...
struct  DatabaseException
class  KeyValueStore
 Maintains access to the raw data stored in Snapshots and various other Database-related structures. More...
class  Snapshot
 A model of an individual database snapshot, created on save. More...
class  Database
 Provides lower level access to raw snapshot data used to construct analysis data. More...
struct  ProjectException
class  ExternalLocation
class  ExternalLibrary
class  ProjectNotification
class  ProjectFolder
class  ProjectFile
class  Project
class  UndoAction
class  UndoEntry
class  SaveSettings
class  BinaryDataNotification
class  FileAccessor
class  CoreFileAccessor
class  NameList
class  QualifiedName
class  NameSpace
class  StringRef
class  Symbol
struct  FunctionViewType
struct  ReferenceSource
struct  TypeFieldReference
struct  ILReferenceSource
struct  TypeReferenceSource
struct  DisassemblyTextLineTypeInfo
struct  DisassemblyTextLine
struct  LinearDisassemblyLine
struct  TypeDefinitionLine
class  AnalysisCompletionEvent
struct  ActiveAnalysisInfo
struct  AnalysisInfo
struct  DataVariable
struct  DataVariableAndName
class  TagType
class  Tag
struct  TagReference
class  Segment
 The Segment object is returned during BinaryView creation and should not be directly instantiated. More...
class  Section
 The Section object is returned during BinaryView creation and should not be directly instantiated. More...
struct  RegisterValue
struct  AllTypeReferences
struct  AllTypeFieldReferences
class  CustomStringType
 Represents a custom string type. More...
struct  DerivedStringLocation
 Location associated with a derived string. More...
struct  DerivedString
 Contains a string derived from code or data. More...
class  QueryMetadataException
class  BinaryView
 BinaryView implements a view on binary data, and presents a queryable interface of a binary file. More...
class  MemoryMap
class  Relocation
class  BinaryData
class  BinaryViewType
 The BinaryViewType object is used internally and should not be directly instantiated. More...
class  CoreBinaryViewType
class  ReadException
 Thrown whenever a read is performed out of bounds. More...
class  BinaryReader
 BinaryReader is a convenience class for reading binary data. More...
class  WriteException
 Raised whenever a write is performed out of bounds. More...
class  BinaryWriter
 BinaryWriter is a convenience class for writing binary data. More...
struct  TransformParameter
class  Transform
 Allows users to implement custom transformations. More...
class  CoreTransform
class  TransformContext
class  TransformSession
struct  InstructionInfo
struct  NameAndType
class  BasicBlockAnalysisContext
class  Architecture
 The Architecture class is the base class for all CPU architectures. More...
class  CoreArchitecture
class  ArchitectureExtension
class  ArchitectureHook
struct  Variable
struct  VariableReferenceSource
struct  FunctionParameter
class  FieldResolutionInfo
struct  QualifiedNameAndType
struct  TypeAndId
struct  ParsedType
struct  TypeParserResult
struct  TypeParserError
struct  TypeAttribute
class  Type
class  TypeBuilder
class  NamedTypeReference
class  NamedTypeReferenceBuilder
struct  StructureMember
struct  InheritedStructureMember
struct  BaseStructure
class  Structure
 Structure is a class that wraps built structures and retrieves info about them. More...
class  StructureBuilder
 StructureBuilder is a convenience class used for building Structure Types. More...
struct  EnumerationMember
class  Enumeration
class  EnumerationBuilder
 EnumerationBuilder is a convenience class used for building Enumeration Types. More...
class  AnalysisContext
class  Activity
class  WorkflowMachine
class  Workflow
 Workflows are represented as Directed Acyclic Graphs (DAGs), where each node corresponds to an Activity (an individual analysis or action). More...
class  DisassemblySettings
struct  BasicBlockEdge
struct  PendingBasicBlockEdge
class  BasicBlock
struct  VariableNameAndType
struct  StackVariableReference
struct  IndirectBranchInfo
struct  ArchAndAddr
struct  LookupTableEntry
struct  ConstantData
struct  PossibleValueSet
class  Function
class  AdvancedFunctionAnalysisDataRequestor
struct  FlowGraphEdge
class  FlowGraphNode
class  FlowGraphLayoutRequest
class  FlowGraph
 FlowGraph implements a directed flow graph to be shown in the UI. More...
class  CoreFlowGraph
class  FlowGraphLayout
class  CoreFlowGraphLayout
struct  LowLevelILLabel
struct  ILSourceLocation
class  LowLevelILFunction
struct  MediumLevelILLabel
class  MediumLevelILFunction
class  HighLevelILFunction
struct  LineFormatterSettings
class  LineFormatter
class  CoreLineFormatter
class  LanguageRepresentationFunction
 LanguageRepresentationFunction represents a single function in a registered high level language. More...
class  CoreLanguageRepresentationFunction
class  LanguageRepresentationFunctionType
 LanguageRepresentationFunctionType represents a custom language representation function type. More...
class  CoreLanguageRepresentationFunctionType
class  FunctionRecognizer
class  RelocationHandler
class  CoreRelocationHandler
class  UpdateException
struct  UpdateChannel
struct  UpdateVersion
 UpdateVersion documentation. More...
struct  PluginCommandContext
class  PluginCommand
 The PluginCommand class is used for registering "commands" for Plugins, corresponding to code in those plugins to be executed. More...
class  CallingConvention
class  CoreCallingConvention
class  Platform
 Platform base class. More...
class  CorePlatform
class  TypeParser
class  CoreTypeParser
class  TypePrinter
class  CoreTypePrinter
class  DownloadInstance
class  CoreDownloadInstance
class  DownloadProvider
class  CoreDownloadProvider
class  WebsocketClient
class  CoreWebsocketClient
class  WebsocketProvider
class  CoreWebsocketProvider
class  ScriptingOutputListener
class  ScriptingInstance
class  CoreScriptingInstance
class  ScriptingProvider
class  CoreScriptingProvider
class  MainThreadAction
class  MainThreadActionHandler
class  BackgroundTask
struct  FormInputField
class  ReportCollection
class  InteractionHandler
class  RepoPlugin
class  Repository
class  RepositoryManager
class  Settings
 Settings provides a way to define and access settings in a hierarchical fashion. More...
class  DataRenderer
 DataRenderer objects tell the Linear View how to render specific types. More...
class  DataRendererContainer
 Used for registering DataRenderers. More...
class  DisassemblyTextRenderer
struct  LinearViewObjectIdentifier
class  LinearViewObject
class  LinearViewCursor
class  SimplifyName
struct  FindParameters
struct  DebugFunctionInfo
class  DebugInfo
class  DebugInfoParser
class  CustomDebugInfoParser
class  SecretsProvider
 Class for storing secrets (e.g. More...
class  CoreSecretsProvider
class  Component
 Components are objects that can contain Functions and other Components. More...
class  TypeLibrary
class  TypeArchiveNotification
class  TypeArchive
 Type Archives are a collection of types which can be shared between different analysis sessions and are backed by a database file on disk. More...
class  TypeContainer
 A TypeContainer is a generic interface to access various Binary Ninja models that contain types. More...
class  SymbolQueue
struct  BaseAddressDetectionSettings
class  BaseAddressDetection
struct  FirmwareNinjaDevice
struct  FirmwareNinjaFunctionMemoryAccesses
struct  FirmwareNinjaDeviceAccesses
class  FirmwareNinjaReferenceNode
 FirmwareNinjaReferenceNode is a class used to build reference trees for memory regions, functions, and data variables. More...
class  FirmwareNinjaRelationship
 FirmwareNinjaRelationship is a class used to represent inter-binary and cross-binary relationships. More...
class  FirmwareNinja
 FirmwareNinja is a class containing features specific to firmware analysis. More...
class  Demangler
class  CoreDemangler
class  HighLevelILTokenEmitter
 HighLevelILTokenEmitter contains methods for emitting text tokens for High Level IL instructions. More...
class  RenderLayer
 RenderLayer is a plugin class that allows you to customize the presentation of Linear and Graph view output, adding, changing, or removing lines before they are presented in the UI. More...
class  CoreRenderLayer
class  ConstantRenderer
 ConstantRenderer allows custom rendering of constants in high level representations. More...
class  CoreConstantRenderer
class  StringRecognizer
 StringRecognizer recognizes custom strings found in high level expressions. More...
class  CoreStringRecognizer
struct  ExceptionWithStackTrace
struct  APIAble
 Helper class to determine if a type is "API-able" aka has the following interface: More...
struct  HighLevelILInstructionAccessor
class  HighLevelILInstructionAccessException
class  HighLevelILIntegerList
class  HighLevelILIndexList
class  HighLevelILInstructionList
class  HighLevelILSSAVariableList
struct  HighLevelILInstructionBase
struct  HighLevelILInstruction
class  HighLevelILOperand
class  HighLevelILOperandList
struct  HighLevelILConstantInstruction
struct  HighLevelILConstantDataInstruction
struct  HighLevelILOneOperandInstruction
struct  HighLevelILTwoOperandInstruction
struct  HighLevelILTwoOperandWithCarryInstruction
struct  HighLevelILInstructionAccessor< HLIL_BLOCK >
struct  HighLevelILInstructionAccessor< HLIL_IF >
struct  HighLevelILInstructionAccessor< HLIL_WHILE >
struct  HighLevelILInstructionAccessor< HLIL_WHILE_SSA >
struct  HighLevelILInstructionAccessor< HLIL_DO_WHILE >
struct  HighLevelILInstructionAccessor< HLIL_DO_WHILE_SSA >
struct  HighLevelILInstructionAccessor< HLIL_FOR >
struct  HighLevelILInstructionAccessor< HLIL_FOR_SSA >
struct  HighLevelILInstructionAccessor< HLIL_SWITCH >
struct  HighLevelILInstructionAccessor< HLIL_CASE >
struct  HighLevelILInstructionAccessor< HLIL_GOTO >
struct  HighLevelILInstructionAccessor< HLIL_LABEL >
struct  HighLevelILInstructionAccessor< HLIL_RET >
struct  HighLevelILInstructionAccessor< HLIL_VAR_DECLARE >
struct  HighLevelILInstructionAccessor< HLIL_VAR_INIT >
struct  HighLevelILInstructionAccessor< HLIL_VAR_INIT_SSA >
struct  HighLevelILInstructionAccessor< HLIL_ASSIGN >
struct  HighLevelILInstructionAccessor< HLIL_ASSIGN_UNPACK >
struct  HighLevelILInstructionAccessor< HLIL_ASSIGN_MEM_SSA >
struct  HighLevelILInstructionAccessor< HLIL_ASSIGN_UNPACK_MEM_SSA >
struct  HighLevelILInstructionAccessor< HLIL_FORCE_VER >
struct  HighLevelILInstructionAccessor< HLIL_FORCE_VER_SSA >
struct  HighLevelILInstructionAccessor< HLIL_ASSERT >
struct  HighLevelILInstructionAccessor< HLIL_ASSERT_SSA >
struct  HighLevelILInstructionAccessor< HLIL_STRUCT_FIELD >
struct  HighLevelILInstructionAccessor< HLIL_DEREF_FIELD >
struct  HighLevelILInstructionAccessor< HLIL_DEREF_SSA >
struct  HighLevelILInstructionAccessor< HLIL_DEREF_FIELD_SSA >
struct  HighLevelILInstructionAccessor< HLIL_ARRAY_INDEX >
struct  HighLevelILInstructionAccessor< HLIL_ARRAY_INDEX_SSA >
struct  HighLevelILInstructionAccessor< HLIL_SPLIT >
struct  HighLevelILInstructionAccessor< HLIL_VAR >
struct  HighLevelILInstructionAccessor< HLIL_VAR_SSA >
struct  HighLevelILInstructionAccessor< HLIL_VAR_PHI >
struct  HighLevelILInstructionAccessor< HLIL_MEM_PHI >
struct  HighLevelILInstructionAccessor< HLIL_JUMP >
struct  HighLevelILInstructionAccessor< HLIL_CALL >
struct  HighLevelILInstructionAccessor< HLIL_SYSCALL >
struct  HighLevelILInstructionAccessor< HLIL_TAILCALL >
struct  HighLevelILInstructionAccessor< HLIL_CALL_SSA >
struct  HighLevelILInstructionAccessor< HLIL_SYSCALL_SSA >
struct  HighLevelILInstructionAccessor< HLIL_INTRINSIC >
struct  HighLevelILInstructionAccessor< HLIL_INTRINSIC_SSA >
struct  HighLevelILInstructionAccessor< HLIL_TRAP >
struct  HighLevelILInstructionAccessor< HLIL_EXTERN_PTR >
struct  HighLevelILInstructionAccessor< HLIL_NOP >
struct  HighLevelILInstructionAccessor< HLIL_BREAK >
struct  HighLevelILInstructionAccessor< HLIL_CONTINUE >
struct  HighLevelILInstructionAccessor< HLIL_NORET >
struct  HighLevelILInstructionAccessor< HLIL_BP >
struct  HighLevelILInstructionAccessor< HLIL_UNDEF >
struct  HighLevelILInstructionAccessor< HLIL_UNIMPL >
struct  HighLevelILInstructionAccessor< HLIL_UNREACHABLE >
struct  HighLevelILInstructionAccessor< HLIL_CONST >
struct  HighLevelILInstructionAccessor< HLIL_CONST_PTR >
struct  HighLevelILInstructionAccessor< HLIL_FLOAT_CONST >
struct  HighLevelILInstructionAccessor< HLIL_IMPORT >
struct  HighLevelILInstructionAccessor< HLIL_CONST_DATA >
struct  HighLevelILInstructionAccessor< HLIL_ADD >
struct  HighLevelILInstructionAccessor< HLIL_SUB >
struct  HighLevelILInstructionAccessor< HLIL_AND >
struct  HighLevelILInstructionAccessor< HLIL_OR >
struct  HighLevelILInstructionAccessor< HLIL_XOR >
struct  HighLevelILInstructionAccessor< HLIL_LSL >
struct  HighLevelILInstructionAccessor< HLIL_LSR >
struct  HighLevelILInstructionAccessor< HLIL_ASR >
struct  HighLevelILInstructionAccessor< HLIL_ROL >
struct  HighLevelILInstructionAccessor< HLIL_ROR >
struct  HighLevelILInstructionAccessor< HLIL_MUL >
struct  HighLevelILInstructionAccessor< HLIL_MULU_DP >
struct  HighLevelILInstructionAccessor< HLIL_MULS_DP >
struct  HighLevelILInstructionAccessor< HLIL_DIVU >
struct  HighLevelILInstructionAccessor< HLIL_DIVS >
struct  HighLevelILInstructionAccessor< HLIL_MODU >
struct  HighLevelILInstructionAccessor< HLIL_MODS >
struct  HighLevelILInstructionAccessor< HLIL_DIVU_DP >
struct  HighLevelILInstructionAccessor< HLIL_DIVS_DP >
struct  HighLevelILInstructionAccessor< HLIL_MODU_DP >
struct  HighLevelILInstructionAccessor< HLIL_MODS_DP >
struct  HighLevelILInstructionAccessor< HLIL_CMP_E >
struct  HighLevelILInstructionAccessor< HLIL_CMP_NE >
struct  HighLevelILInstructionAccessor< HLIL_CMP_SLT >
struct  HighLevelILInstructionAccessor< HLIL_CMP_ULT >
struct  HighLevelILInstructionAccessor< HLIL_CMP_SLE >
struct  HighLevelILInstructionAccessor< HLIL_CMP_ULE >
struct  HighLevelILInstructionAccessor< HLIL_CMP_SGE >
struct  HighLevelILInstructionAccessor< HLIL_CMP_UGE >
struct  HighLevelILInstructionAccessor< HLIL_CMP_SGT >
struct  HighLevelILInstructionAccessor< HLIL_CMP_UGT >
struct  HighLevelILInstructionAccessor< HLIL_TEST_BIT >
struct  HighLevelILInstructionAccessor< HLIL_ADD_OVERFLOW >
struct  HighLevelILInstructionAccessor< HLIL_FADD >
struct  HighLevelILInstructionAccessor< HLIL_FSUB >
struct  HighLevelILInstructionAccessor< HLIL_FMUL >
struct  HighLevelILInstructionAccessor< HLIL_FDIV >
struct  HighLevelILInstructionAccessor< HLIL_FCMP_E >
struct  HighLevelILInstructionAccessor< HLIL_FCMP_NE >
struct  HighLevelILInstructionAccessor< HLIL_FCMP_LT >
struct  HighLevelILInstructionAccessor< HLIL_FCMP_LE >
struct  HighLevelILInstructionAccessor< HLIL_FCMP_GE >
struct  HighLevelILInstructionAccessor< HLIL_FCMP_GT >
struct  HighLevelILInstructionAccessor< HLIL_FCMP_O >
struct  HighLevelILInstructionAccessor< HLIL_FCMP_UO >
struct  HighLevelILInstructionAccessor< HLIL_ADC >
struct  HighLevelILInstructionAccessor< HLIL_SBB >
struct  HighLevelILInstructionAccessor< HLIL_RLC >
struct  HighLevelILInstructionAccessor< HLIL_RRC >
struct  HighLevelILInstructionAccessor< HLIL_DEREF >
struct  HighLevelILInstructionAccessor< HLIL_ADDRESS_OF >
struct  HighLevelILInstructionAccessor< HLIL_NEG >
struct  HighLevelILInstructionAccessor< HLIL_NOT >
struct  HighLevelILInstructionAccessor< HLIL_SX >
struct  HighLevelILInstructionAccessor< HLIL_ZX >
struct  HighLevelILInstructionAccessor< HLIL_LOW_PART >
struct  HighLevelILInstructionAccessor< HLIL_BOOL_TO_INT >
struct  HighLevelILInstructionAccessor< HLIL_UNIMPL_MEM >
struct  HighLevelILInstructionAccessor< HLIL_FSQRT >
struct  HighLevelILInstructionAccessor< HLIL_FNEG >
struct  HighLevelILInstructionAccessor< HLIL_FABS >
struct  HighLevelILInstructionAccessor< HLIL_FLOAT_TO_INT >
struct  HighLevelILInstructionAccessor< HLIL_INT_TO_FLOAT >
struct  HighLevelILInstructionAccessor< HLIL_FLOAT_CONV >
struct  HighLevelILInstructionAccessor< HLIL_ROUND_TO_INT >
struct  HighLevelILInstructionAccessor< HLIL_FLOOR >
struct  HighLevelILInstructionAccessor< HLIL_CEIL >
struct  HighLevelILInstructionAccessor< HLIL_FTRUNC >
struct  LowLevelILInstructionAccessor
struct  RegisterOrFlag
struct  SSARegister
struct  SSARegisterStack
struct  SSAFlag
struct  SSARegisterOrFlag
class  LowLevelILInstructionAccessException
class  LowLevelILIntegerList
class  LowLevelILIndexList
class  LowLevelILIndexMap
class  LowLevelILInstructionList
class  LowLevelILRegisterOrFlagList
class  LowLevelILSSARegisterList
class  LowLevelILSSARegisterStackList
class  LowLevelILSSAFlagList
class  LowLevelILSSARegisterOrFlagList
struct  LowLevelILInstructionBase
struct  LowLevelILInstruction
class  LowLevelILOperand
class  LowLevelILOperandList
struct  LowLevelILConstantInstruction
struct  LowLevelILOffsetInstruction
struct  LowLevelILOneOperandInstruction
struct  LowLevelILTwoOperandInstruction
struct  LowLevelILTwoOperandWithCarryInstruction
struct  LowLevelILInstructionAccessor< LLIL_SET_REG >
struct  LowLevelILInstructionAccessor< LLIL_SET_REG_SPLIT >
struct  LowLevelILInstructionAccessor< LLIL_SET_REG_SSA >
struct  LowLevelILInstructionAccessor< LLIL_SET_REG_SSA_PARTIAL >
struct  LowLevelILInstructionAccessor< LLIL_SET_REG_SPLIT_SSA >
struct  LowLevelILInstructionAccessor< LLIL_SET_REG_STACK_REL >
struct  LowLevelILInstructionAccessor< LLIL_REG_STACK_PUSH >
struct  LowLevelILInstructionAccessor< LLIL_SET_REG_STACK_REL_SSA >
struct  LowLevelILInstructionAccessor< LLIL_SET_REG_STACK_ABS_SSA >
struct  LowLevelILInstructionAccessor< LLIL_FORCE_VER >
struct  LowLevelILInstructionAccessor< LLIL_FORCE_VER_SSA >
struct  LowLevelILInstructionAccessor< LLIL_ASSERT >
struct  LowLevelILInstructionAccessor< LLIL_ASSERT_SSA >
struct  LowLevelILInstructionAccessor< LLIL_SET_FLAG >
struct  LowLevelILInstructionAccessor< LLIL_SET_FLAG_SSA >
struct  LowLevelILInstructionAccessor< LLIL_LOAD >
struct  LowLevelILInstructionAccessor< LLIL_LOAD_SSA >
struct  LowLevelILInstructionAccessor< LLIL_STORE >
struct  LowLevelILInstructionAccessor< LLIL_STORE_SSA >
struct  LowLevelILInstructionAccessor< LLIL_REG >
struct  LowLevelILInstructionAccessor< LLIL_REG_SSA >
struct  LowLevelILInstructionAccessor< LLIL_REG_SSA_PARTIAL >
struct  LowLevelILInstructionAccessor< LLIL_REG_STACK_REL >
struct  LowLevelILInstructionAccessor< LLIL_REG_STACK_POP >
struct  LowLevelILInstructionAccessor< LLIL_REG_STACK_FREE_REG >
struct  LowLevelILInstructionAccessor< LLIL_REG_STACK_FREE_REL >
struct  LowLevelILInstructionAccessor< LLIL_REG_STACK_REL_SSA >
struct  LowLevelILInstructionAccessor< LLIL_REG_STACK_ABS_SSA >
struct  LowLevelILInstructionAccessor< LLIL_REG_STACK_FREE_REL_SSA >
struct  LowLevelILInstructionAccessor< LLIL_REG_STACK_FREE_ABS_SSA >
struct  LowLevelILInstructionAccessor< LLIL_FLAG >
struct  LowLevelILInstructionAccessor< LLIL_FLAG_BIT >
struct  LowLevelILInstructionAccessor< LLIL_FLAG_SSA >
struct  LowLevelILInstructionAccessor< LLIL_FLAG_BIT_SSA >
struct  LowLevelILInstructionAccessor< LLIL_REG_SPLIT >
struct  LowLevelILInstructionAccessor< LLIL_REG_SPLIT_SSA >
struct  LowLevelILInstructionAccessor< LLIL_JUMP >
struct  LowLevelILInstructionAccessor< LLIL_JUMP_TO >
struct  LowLevelILInstructionAccessor< LLIL_CALL >
struct  LowLevelILInstructionAccessor< LLIL_CALL_STACK_ADJUST >
struct  LowLevelILInstructionAccessor< LLIL_TAILCALL >
struct  LowLevelILInstructionAccessor< LLIL_RET >
struct  LowLevelILInstructionAccessor< LLIL_IF >
struct  LowLevelILInstructionAccessor< LLIL_GOTO >
struct  LowLevelILInstructionAccessor< LLIL_FLAG_COND >
struct  LowLevelILInstructionAccessor< LLIL_FLAG_GROUP >
struct  LowLevelILInstructionAccessor< LLIL_TRAP >
struct  LowLevelILInstructionAccessor< LLIL_CALL_SSA >
struct  LowLevelILInstructionAccessor< LLIL_SYSCALL_SSA >
struct  LowLevelILInstructionAccessor< LLIL_TAILCALL_SSA >
struct  LowLevelILInstructionAccessor< LLIL_INTRINSIC >
struct  LowLevelILInstructionAccessor< LLIL_INTRINSIC_SSA >
struct  LowLevelILInstructionAccessor< LLIL_MEMORY_INTRINSIC_SSA >
struct  LowLevelILInstructionAccessor< LLIL_SEPARATE_PARAM_LIST_SSA >
struct  LowLevelILInstructionAccessor< LLIL_SHARED_PARAM_SLOT_SSA >
struct  LowLevelILInstructionAccessor< LLIL_REG_PHI >
struct  LowLevelILInstructionAccessor< LLIL_REG_STACK_PHI >
struct  LowLevelILInstructionAccessor< LLIL_FLAG_PHI >
struct  LowLevelILInstructionAccessor< LLIL_MEM_PHI >
struct  LowLevelILInstructionAccessor< LLIL_EXTERN_PTR >
struct  LowLevelILInstructionAccessor< LLIL_NOP >
struct  LowLevelILInstructionAccessor< LLIL_POP >
struct  LowLevelILInstructionAccessor< LLIL_NORET >
struct  LowLevelILInstructionAccessor< LLIL_SYSCALL >
struct  LowLevelILInstructionAccessor< LLIL_BP >
struct  LowLevelILInstructionAccessor< LLIL_UNDEF >
struct  LowLevelILInstructionAccessor< LLIL_UNIMPL >
struct  LowLevelILInstructionAccessor< LLIL_CONST >
struct  LowLevelILInstructionAccessor< LLIL_CONST_PTR >
struct  LowLevelILInstructionAccessor< LLIL_FLOAT_CONST >
struct  LowLevelILInstructionAccessor< LLIL_ADD >
struct  LowLevelILInstructionAccessor< LLIL_SUB >
struct  LowLevelILInstructionAccessor< LLIL_AND >
struct  LowLevelILInstructionAccessor< LLIL_OR >
struct  LowLevelILInstructionAccessor< LLIL_XOR >
struct  LowLevelILInstructionAccessor< LLIL_LSL >
struct  LowLevelILInstructionAccessor< LLIL_LSR >
struct  LowLevelILInstructionAccessor< LLIL_ASR >
struct  LowLevelILInstructionAccessor< LLIL_ROL >
struct  LowLevelILInstructionAccessor< LLIL_ROR >
struct  LowLevelILInstructionAccessor< LLIL_MUL >
struct  LowLevelILInstructionAccessor< LLIL_MULU_DP >
struct  LowLevelILInstructionAccessor< LLIL_MULS_DP >
struct  LowLevelILInstructionAccessor< LLIL_DIVU >
struct  LowLevelILInstructionAccessor< LLIL_DIVS >
struct  LowLevelILInstructionAccessor< LLIL_MODU >
struct  LowLevelILInstructionAccessor< LLIL_MODS >
struct  LowLevelILInstructionAccessor< LLIL_DIVU_DP >
struct  LowLevelILInstructionAccessor< LLIL_DIVS_DP >
struct  LowLevelILInstructionAccessor< LLIL_MODU_DP >
struct  LowLevelILInstructionAccessor< LLIL_MODS_DP >
struct  LowLevelILInstructionAccessor< LLIL_CMP_E >
struct  LowLevelILInstructionAccessor< LLIL_CMP_NE >
struct  LowLevelILInstructionAccessor< LLIL_CMP_SLT >
struct  LowLevelILInstructionAccessor< LLIL_CMP_ULT >
struct  LowLevelILInstructionAccessor< LLIL_CMP_SLE >
struct  LowLevelILInstructionAccessor< LLIL_CMP_ULE >
struct  LowLevelILInstructionAccessor< LLIL_CMP_SGE >
struct  LowLevelILInstructionAccessor< LLIL_CMP_UGE >
struct  LowLevelILInstructionAccessor< LLIL_CMP_SGT >
struct  LowLevelILInstructionAccessor< LLIL_CMP_UGT >
struct  LowLevelILInstructionAccessor< LLIL_TEST_BIT >
struct  LowLevelILInstructionAccessor< LLIL_ADD_OVERFLOW >
struct  LowLevelILInstructionAccessor< LLIL_FADD >
struct  LowLevelILInstructionAccessor< LLIL_FSUB >
struct  LowLevelILInstructionAccessor< LLIL_FMUL >
struct  LowLevelILInstructionAccessor< LLIL_FDIV >
struct  LowLevelILInstructionAccessor< LLIL_FCMP_E >
struct  LowLevelILInstructionAccessor< LLIL_FCMP_NE >
struct  LowLevelILInstructionAccessor< LLIL_FCMP_LT >
struct  LowLevelILInstructionAccessor< LLIL_FCMP_LE >
struct  LowLevelILInstructionAccessor< LLIL_FCMP_GE >
struct  LowLevelILInstructionAccessor< LLIL_FCMP_GT >
struct  LowLevelILInstructionAccessor< LLIL_FCMP_O >
struct  LowLevelILInstructionAccessor< LLIL_FCMP_UO >
struct  LowLevelILInstructionAccessor< LLIL_ADC >
struct  LowLevelILInstructionAccessor< LLIL_SBB >
struct  LowLevelILInstructionAccessor< LLIL_RLC >
struct  LowLevelILInstructionAccessor< LLIL_RRC >
struct  LowLevelILInstructionAccessor< LLIL_PUSH >
struct  LowLevelILInstructionAccessor< LLIL_NEG >
struct  LowLevelILInstructionAccessor< LLIL_NOT >
struct  LowLevelILInstructionAccessor< LLIL_SX >
struct  LowLevelILInstructionAccessor< LLIL_ZX >
struct  LowLevelILInstructionAccessor< LLIL_LOW_PART >
struct  LowLevelILInstructionAccessor< LLIL_BOOL_TO_INT >
struct  LowLevelILInstructionAccessor< LLIL_UNIMPL_MEM >
struct  LowLevelILInstructionAccessor< LLIL_FSQRT >
struct  LowLevelILInstructionAccessor< LLIL_FNEG >
struct  LowLevelILInstructionAccessor< LLIL_FABS >
struct  LowLevelILInstructionAccessor< LLIL_FLOAT_TO_INT >
struct  LowLevelILInstructionAccessor< LLIL_INT_TO_FLOAT >
struct  LowLevelILInstructionAccessor< LLIL_FLOAT_CONV >
struct  LowLevelILInstructionAccessor< LLIL_ROUND_TO_INT >
struct  LowLevelILInstructionAccessor< LLIL_FLOOR >
struct  LowLevelILInstructionAccessor< LLIL_CEIL >
struct  LowLevelILInstructionAccessor< LLIL_FTRUNC >
struct  MediumLevelILInstructionAccessor
struct  SSAVariable
class  MediumLevelILInstructionAccessException
class  MediumLevelILIntegerList
class  MediumLevelILIndexList
class  MediumLevelILIndexMap
class  MediumLevelILVariableList
class  MediumLevelILSSAVariableList
class  MediumLevelILInstructionList
struct  MediumLevelILInstructionBase
struct  MediumLevelILInstruction
class  MediumLevelILOperand
class  MediumLevelILOperandList
struct  MediumLevelILConstantInstruction
struct  MediumLevelILConstantDataInstruction
struct  MediumLevelILOneOperandInstruction
struct  MediumLevelILTwoOperandInstruction
struct  MediumLevelILTwoOperandWithCarryInstruction
struct  MediumLevelILInstructionAccessor< MLIL_SET_VAR >
struct  MediumLevelILInstructionAccessor< MLIL_SET_VAR_FIELD >
struct  MediumLevelILInstructionAccessor< MLIL_SET_VAR_SPLIT >
struct  MediumLevelILInstructionAccessor< MLIL_SET_VAR_SSA >
struct  MediumLevelILInstructionAccessor< MLIL_SET_VAR_SSA_FIELD >
struct  MediumLevelILInstructionAccessor< MLIL_SET_VAR_SPLIT_SSA >
struct  MediumLevelILInstructionAccessor< MLIL_SET_VAR_ALIASED >
struct  MediumLevelILInstructionAccessor< MLIL_SET_VAR_ALIASED_FIELD >
struct  MediumLevelILInstructionAccessor< MLIL_FORCE_VER >
struct  MediumLevelILInstructionAccessor< MLIL_FORCE_VER_SSA >
struct  MediumLevelILInstructionAccessor< MLIL_ASSERT >
struct  MediumLevelILInstructionAccessor< MLIL_ASSERT_SSA >
struct  MediumLevelILInstructionAccessor< MLIL_LOAD >
struct  MediumLevelILInstructionAccessor< MLIL_LOAD_STRUCT >
struct  MediumLevelILInstructionAccessor< MLIL_LOAD_SSA >
struct  MediumLevelILInstructionAccessor< MLIL_LOAD_STRUCT_SSA >
struct  MediumLevelILInstructionAccessor< MLIL_STORE >
struct  MediumLevelILInstructionAccessor< MLIL_STORE_STRUCT >
struct  MediumLevelILInstructionAccessor< MLIL_STORE_SSA >
struct  MediumLevelILInstructionAccessor< MLIL_STORE_STRUCT_SSA >
struct  MediumLevelILInstructionAccessor< MLIL_VAR >
struct  MediumLevelILInstructionAccessor< MLIL_VAR_FIELD >
struct  MediumLevelILInstructionAccessor< MLIL_VAR_SPLIT >
struct  MediumLevelILInstructionAccessor< MLIL_VAR_SSA >
struct  MediumLevelILInstructionAccessor< MLIL_VAR_SSA_FIELD >
struct  MediumLevelILInstructionAccessor< MLIL_VAR_ALIASED >
struct  MediumLevelILInstructionAccessor< MLIL_VAR_ALIASED_FIELD >
struct  MediumLevelILInstructionAccessor< MLIL_VAR_SPLIT_SSA >
struct  MediumLevelILInstructionAccessor< MLIL_ADDRESS_OF >
struct  MediumLevelILInstructionAccessor< MLIL_ADDRESS_OF_FIELD >
struct  MediumLevelILInstructionAccessor< MLIL_JUMP >
struct  MediumLevelILInstructionAccessor< MLIL_JUMP_TO >
struct  MediumLevelILInstructionAccessor< MLIL_RET_HINT >
struct  MediumLevelILInstructionAccessor< MLIL_CALL >
struct  MediumLevelILInstructionAccessor< MLIL_CALL_UNTYPED >
struct  MediumLevelILInstructionAccessor< MLIL_SYSCALL >
struct  MediumLevelILInstructionAccessor< MLIL_SYSCALL_UNTYPED >
struct  MediumLevelILInstructionAccessor< MLIL_TAILCALL >
struct  MediumLevelILInstructionAccessor< MLIL_TAILCALL_UNTYPED >
struct  MediumLevelILInstructionAccessor< MLIL_SEPARATE_PARAM_LIST >
struct  MediumLevelILInstructionAccessor< MLIL_SHARED_PARAM_SLOT >
struct  MediumLevelILInstructionAccessor< MLIL_CALL_SSA >
struct  MediumLevelILInstructionAccessor< MLIL_CALL_UNTYPED_SSA >
struct  MediumLevelILInstructionAccessor< MLIL_SYSCALL_SSA >
struct  MediumLevelILInstructionAccessor< MLIL_SYSCALL_UNTYPED_SSA >
struct  MediumLevelILInstructionAccessor< MLIL_TAILCALL_SSA >
struct  MediumLevelILInstructionAccessor< MLIL_TAILCALL_UNTYPED_SSA >
struct  MediumLevelILInstructionAccessor< MLIL_RET >
struct  MediumLevelILInstructionAccessor< MLIL_IF >
struct  MediumLevelILInstructionAccessor< MLIL_GOTO >
struct  MediumLevelILInstructionAccessor< MLIL_INTRINSIC >
struct  MediumLevelILInstructionAccessor< MLIL_INTRINSIC_SSA >
struct  MediumLevelILInstructionAccessor< MLIL_MEMORY_INTRINSIC_SSA >
struct  MediumLevelILInstructionAccessor< MLIL_FREE_VAR_SLOT >
struct  MediumLevelILInstructionAccessor< MLIL_FREE_VAR_SLOT_SSA >
struct  MediumLevelILInstructionAccessor< MLIL_TRAP >
struct  MediumLevelILInstructionAccessor< MLIL_VAR_PHI >
struct  MediumLevelILInstructionAccessor< MLIL_MEM_PHI >
struct  MediumLevelILInstructionAccessor< MLIL_EXTERN_PTR >
struct  MediumLevelILInstructionAccessor< MLIL_NOP >
struct  MediumLevelILInstructionAccessor< MLIL_NORET >
struct  MediumLevelILInstructionAccessor< MLIL_BP >
struct  MediumLevelILInstructionAccessor< MLIL_UNDEF >
struct  MediumLevelILInstructionAccessor< MLIL_UNIMPL >
struct  MediumLevelILInstructionAccessor< MLIL_CONST >
struct  MediumLevelILInstructionAccessor< MLIL_CONST_PTR >
struct  MediumLevelILInstructionAccessor< MLIL_FLOAT_CONST >
struct  MediumLevelILInstructionAccessor< MLIL_IMPORT >
struct  MediumLevelILInstructionAccessor< MLIL_CONST_DATA >
struct  MediumLevelILInstructionAccessor< MLIL_ADD >
struct  MediumLevelILInstructionAccessor< MLIL_SUB >
struct  MediumLevelILInstructionAccessor< MLIL_AND >
struct  MediumLevelILInstructionAccessor< MLIL_OR >
struct  MediumLevelILInstructionAccessor< MLIL_XOR >
struct  MediumLevelILInstructionAccessor< MLIL_LSL >
struct  MediumLevelILInstructionAccessor< MLIL_LSR >
struct  MediumLevelILInstructionAccessor< MLIL_ASR >
struct  MediumLevelILInstructionAccessor< MLIL_ROL >
struct  MediumLevelILInstructionAccessor< MLIL_ROR >
struct  MediumLevelILInstructionAccessor< MLIL_MUL >
struct  MediumLevelILInstructionAccessor< MLIL_MULU_DP >
struct  MediumLevelILInstructionAccessor< MLIL_MULS_DP >
struct  MediumLevelILInstructionAccessor< MLIL_DIVU >
struct  MediumLevelILInstructionAccessor< MLIL_DIVS >
struct  MediumLevelILInstructionAccessor< MLIL_MODU >
struct  MediumLevelILInstructionAccessor< MLIL_MODS >
struct  MediumLevelILInstructionAccessor< MLIL_DIVU_DP >
struct  MediumLevelILInstructionAccessor< MLIL_DIVS_DP >
struct  MediumLevelILInstructionAccessor< MLIL_MODU_DP >
struct  MediumLevelILInstructionAccessor< MLIL_MODS_DP >
struct  MediumLevelILInstructionAccessor< MLIL_CMP_E >
struct  MediumLevelILInstructionAccessor< MLIL_CMP_NE >
struct  MediumLevelILInstructionAccessor< MLIL_CMP_SLT >
struct  MediumLevelILInstructionAccessor< MLIL_CMP_ULT >
struct  MediumLevelILInstructionAccessor< MLIL_CMP_SLE >
struct  MediumLevelILInstructionAccessor< MLIL_CMP_ULE >
struct  MediumLevelILInstructionAccessor< MLIL_CMP_SGE >
struct  MediumLevelILInstructionAccessor< MLIL_CMP_UGE >
struct  MediumLevelILInstructionAccessor< MLIL_CMP_SGT >
struct  MediumLevelILInstructionAccessor< MLIL_CMP_UGT >
struct  MediumLevelILInstructionAccessor< MLIL_TEST_BIT >
struct  MediumLevelILInstructionAccessor< MLIL_ADD_OVERFLOW >
struct  MediumLevelILInstructionAccessor< MLIL_FADD >
struct  MediumLevelILInstructionAccessor< MLIL_FSUB >
struct  MediumLevelILInstructionAccessor< MLIL_FMUL >
struct  MediumLevelILInstructionAccessor< MLIL_FDIV >
struct  MediumLevelILInstructionAccessor< MLIL_FCMP_E >
struct  MediumLevelILInstructionAccessor< MLIL_FCMP_NE >
struct  MediumLevelILInstructionAccessor< MLIL_FCMP_LT >
struct  MediumLevelILInstructionAccessor< MLIL_FCMP_LE >
struct  MediumLevelILInstructionAccessor< MLIL_FCMP_GE >
struct  MediumLevelILInstructionAccessor< MLIL_FCMP_GT >
struct  MediumLevelILInstructionAccessor< MLIL_FCMP_O >
struct  MediumLevelILInstructionAccessor< MLIL_FCMP_UO >
struct  MediumLevelILInstructionAccessor< MLIL_ADC >
struct  MediumLevelILInstructionAccessor< MLIL_SBB >
struct  MediumLevelILInstructionAccessor< MLIL_RLC >
struct  MediumLevelILInstructionAccessor< MLIL_RRC >
struct  MediumLevelILInstructionAccessor< MLIL_NEG >
struct  MediumLevelILInstructionAccessor< MLIL_NOT >
struct  MediumLevelILInstructionAccessor< MLIL_SX >
struct  MediumLevelILInstructionAccessor< MLIL_ZX >
struct  MediumLevelILInstructionAccessor< MLIL_LOW_PART >
struct  MediumLevelILInstructionAccessor< MLIL_BOOL_TO_INT >
struct  MediumLevelILInstructionAccessor< MLIL_UNIMPL_MEM >
struct  MediumLevelILInstructionAccessor< MLIL_FSQRT >
struct  MediumLevelILInstructionAccessor< MLIL_FNEG >
struct  MediumLevelILInstructionAccessor< MLIL_FABS >
struct  MediumLevelILInstructionAccessor< MLIL_FLOAT_TO_INT >
struct  MediumLevelILInstructionAccessor< MLIL_INT_TO_FLOAT >
struct  MediumLevelILInstructionAccessor< MLIL_FLOAT_CONV >
struct  MediumLevelILInstructionAccessor< MLIL_ROUND_TO_INT >
struct  MediumLevelILInstructionAccessor< MLIL_FLOOR >
struct  MediumLevelILInstructionAccessor< MLIL_CEIL >
struct  MediumLevelILInstructionAccessor< MLIL_FTRUNC >
struct  UpdateProgress

Typedefs

typedef BNMetadataType MetadataType
typedef std::function< bool(size_t, size_t)> ProgressFunction
typedef BNTransformCapabilities TransformCapabilities
typedef size_t ExprId
typedef BNPluginOrigin PluginOrigin
typedef BNPluginStatus PluginStatus
typedef BNPluginType PluginType

Enumerations

enum  ReferenceType {
  UnspecifiedReferenceType = 0x0 , ReadReferenceType = 0x1 , WriteReferenceType = 0x2 , ExecuteReferenceType = 0x4 ,
  DataVariableReferenceType = 0x8 , DirectTypeReferenceType = 0x10 , IndirectTypeReferenceType = 0x20
}
enum  HighLevelILOperandType {
  IntegerHighLevelOperand , ConstantDataHighLevelOperand , IndexHighLevelOperand , IntrinsicHighLevelOperand ,
  ExprHighLevelOperand , VariableHighLevelOperand , SSAVariableHighLevelOperand , ExprListHighLevelOperand ,
  SSAVariableListHighLevelOperand , IndexListHighLevelOperand
}
enum  HighLevelILOperandUsage {
  SourceExprHighLevelOperandUsage , VariableHighLevelOperandUsage , DestVariableHighLevelOperandUsage , SSAVariableHighLevelOperandUsage ,
  DestSSAVariableHighLevelOperandUsage , DestExprHighLevelOperandUsage , LeftExprHighLevelOperandUsage , RightExprHighLevelOperandUsage ,
  CarryExprHighLevelOperandUsage , IndexExprHighLevelOperandUsage , ConditionExprHighLevelOperandUsage , ConditionPhiExprHighLevelOperandUsage ,
  TrueExprHighLevelOperandUsage , FalseExprHighLevelOperandUsage , LoopExprHighLevelOperandUsage , InitExprHighLevelOperandUsage ,
  UpdateExprHighLevelOperandUsage , DefaultExprHighLevelOperandUsage , HighExprHighLevelOperandUsage , LowExprHighLevelOperandUsage ,
  OffsetHighLevelOperandUsage , MemberIndexHighLevelOperandUsage , ConstantHighLevelOperandUsage , ConstantDataHighLevelOperandUsage ,
  VectorHighLevelOperandUsage , IntrinsicHighLevelOperandUsage , TargetHighLevelOperandUsage , ParameterExprsHighLevelOperandUsage ,
  SourceExprsHighLevelOperandUsage , DestExprsHighLevelOperandUsage , BlockExprsHighLevelOperandUsage , CasesHighLevelOperandUsage ,
  ValueExprsHighLevelOperandUsage , SourceSSAVariablesHighLevelOperandUsage , SourceMemoryVersionHighLevelOperandUsage , SourceMemoryVersionsHighLevelOperandUsage ,
  DestMemoryVersionHighLevelOperandUsage
}
enum  LowLevelILOperandType {
  IntegerLowLevelOperand , IndexLowLevelOperand , ExprLowLevelOperand , RegisterLowLevelOperand ,
  RegisterStackLowLevelOperand , FlagLowLevelOperand , FlagConditionLowLevelOperand , IntrinsicLowLevelOperand ,
  SemanticFlagClassLowLevelOperand , SemanticFlagGroupLowLevelOperand , SSARegisterLowLevelOperand , SSARegisterStackLowLevelOperand ,
  SSAFlagLowLevelOperand , IndexListLowLevelOperand , IndexMapLowLevelOperand , ExprListLowLevelOperand ,
  RegisterOrFlagListLowLevelOperand , SSARegisterListLowLevelOperand , SSARegisterStackListLowLevelOperand , SSAFlagListLowLevelOperand ,
  SSARegisterOrFlagListLowLevelOperand , RegisterStackAdjustmentsLowLevelOperand , ConstraintLowLevelOperand
}
enum  LowLevelILOperandUsage {
  SourceExprLowLevelOperandUsage , SourceRegisterLowLevelOperandUsage , SourceRegisterStackLowLevelOperandUsage , SourceFlagLowLevelOperandUsage ,
  SourceSSARegisterLowLevelOperandUsage , SourceSSARegisterStackLowLevelOperandUsage , SourceSSAFlagLowLevelOperandUsage , DestExprLowLevelOperandUsage ,
  DestRegisterLowLevelOperandUsage , DestRegisterStackLowLevelOperandUsage , DestFlagLowLevelOperandUsage , DestSSARegisterLowLevelOperandUsage ,
  DestSSARegisterStackLowLevelOperandUsage , DestSSAFlagLowLevelOperandUsage , SemanticFlagClassLowLevelOperandUsage , SemanticFlagGroupLowLevelOperandUsage ,
  PartialRegisterLowLevelOperandUsage , PartialSSARegisterStackSourceLowLevelOperandUsage , StackSSARegisterLowLevelOperandUsage , StackMemoryVersionLowLevelOperandUsage ,
  TopSSARegisterLowLevelOperandUsage , LeftExprLowLevelOperandUsage , RightExprLowLevelOperandUsage , CarryExprLowLevelOperandUsage ,
  ConditionExprLowLevelOperandUsage , HighRegisterLowLevelOperandUsage , HighSSARegisterLowLevelOperandUsage , LowRegisterLowLevelOperandUsage ,
  LowSSARegisterLowLevelOperandUsage , IntrinsicLowLevelOperandUsage , ConstantLowLevelOperandUsage , VectorLowLevelOperandUsage ,
  StackAdjustmentLowLevelOperandUsage , TargetLowLevelOperandUsage , TrueTargetLowLevelOperandUsage , FalseTargetLowLevelOperandUsage ,
  BitIndexLowLevelOperandUsage , SourceMemoryVersionLowLevelOperandUsage , DestMemoryVersionLowLevelOperandUsage , FlagConditionLowLevelOperandUsage ,
  OutputSSARegistersLowLevelOperandUsage , OutputMemoryVersionLowLevelOperandUsage , ParameterExprsLowLevelOperandUsage , SourceSSARegistersLowLevelOperandUsage ,
  SourceSSARegisterStacksLowLevelOperandUsage , SourceSSAFlagsLowLevelOperandUsage , OutputRegisterOrFlagListLowLevelOperandUsage , OutputSSARegisterOrFlagListLowLevelOperandUsage ,
  OutputMemoryIntrinsicLowLevelOperandUsage , SourceMemoryVersionsLowLevelOperandUsage , TargetsLowLevelOperandUsage , RegisterStackAdjustmentsLowLevelOperandUsage ,
  OffsetLowLevelOperandUsage , ConstraintLowLevelOperandUsage
}
enum  MediumLevelILOperandType {
  IntegerMediumLevelOperand , ConstantDataMediumLevelOperand , IndexMediumLevelOperand , IntrinsicMediumLevelOperand ,
  ExprMediumLevelOperand , VariableMediumLevelOperand , SSAVariableMediumLevelOperand , IndexListMediumLevelOperand ,
  IndexMapMediumLevelOperand , VariableListMediumLevelOperand , SSAVariableListMediumLevelOperand , ExprListMediumLevelOperand ,
  ConstraintMediumLevelOperand
}
enum  MediumLevelILOperandUsage {
  SourceExprMediumLevelOperandUsage , SourceVariableMediumLevelOperandUsage , SourceSSAVariableMediumLevelOperandUsage , PartialSSAVariableSourceMediumLevelOperandUsage ,
  DestExprMediumLevelOperandUsage , DestVariableMediumLevelOperandUsage , DestSSAVariableMediumLevelOperandUsage , LeftExprMediumLevelOperandUsage ,
  RightExprMediumLevelOperandUsage , CarryExprMediumLevelOperandUsage , StackExprMediumLevelOperandUsage , ConditionExprMediumLevelOperandUsage ,
  HighVariableMediumLevelOperandUsage , LowVariableMediumLevelOperandUsage , HighSSAVariableMediumLevelOperandUsage , LowSSAVariableMediumLevelOperandUsage ,
  OffsetMediumLevelOperandUsage , ConstantMediumLevelOperandUsage , ConstantDataMediumLevelOperandUsage , VectorMediumLevelOperandUsage ,
  IntrinsicMediumLevelOperandUsage , TargetMediumLevelOperandUsage , TrueTargetMediumLevelOperandUsage , FalseTargetMediumLevelOperandUsage ,
  DestMemoryVersionMediumLevelOperandUsage , SourceMemoryVersionMediumLevelOperandUsage , TargetsMediumLevelOperandUsage , SourceMemoryVersionsMediumLevelOperandUsage ,
  OutputVariablesMediumLevelOperandUsage , OutputVariablesSubExprMediumLevelOperandUsage , OutputSSAVariablesMediumLevelOperandUsage , OutputSSAVariablesSubExprMediumLevelOperandUsage ,
  OutputSSAMemoryVersionMediumLevelOperandUsage , ParameterExprsMediumLevelOperandUsage , SourceExprsMediumLevelOperandUsage , UntypedParameterExprsMediumLevelOperandUsage ,
  UntypedParameterSSAExprsMediumLevelOperandUsage , ParameterSSAMemoryVersionMediumLevelOperandUsage , SourceSSAVariablesMediumLevelOperandUsages , ConstraintMediumLevelOperandUsage
}

Functions

template<class T>
bool operator== (T *a, const Ref< T > &b)
template<class T>
bool operator!= (T *a, const Ref< T > &b)
template<class T>
bool operator< (T *a, const Ref< T > &b)
template<class T>
bool operator== (T *a, const CallbackRef< T > &b)
template<class T>
bool operator!= (T *a, const CallbackRef< T > &b)
template<class T>
bool operator< (T *a, const CallbackRef< T > &b)
void Log (BNLogLevel level, const char *fmt,...)
 Logs to the error console with the given BNLogLevel.
void LogTrace (const char *fmt,...)
 LogTrace only writes text to the error console if the console is set to log level: DebugLog Log level and the build is not a DEBUG build (i.e.
void LogDebug (const char *fmt,...)
 LogDebug only writes text to the error console if the console is set to log level: DebugLog Log level DebugLog is the most verbose logging level in release builds.
void LogInfo (const char *fmt,...)
 LogInfo always writes text to the error console, and corresponds to the log level: InfoLog.
void LogWarn (const char *fmt,...)
 LogWarn writes text to the error console including a warning icon, and also shows a warning icon in the bottom pane.
void LogError (const char *fmt,...)
 LogError writes text to the error console and pops up the error console.
void LogAlert (const char *fmt,...)
 LogAlert pops up a message box displaying the alert message and logs to the error console.
void LogForException (BNLogLevel level, const std::exception &e, const char *fmt,...)
 Logs to the error console with the given BNLogLevel.
void LogTraceForException (const std::exception &e, const char *fmt,...)
 LogTraceForException only writes text to the error console if the console is set to log level: DebugLog Log level and the build is not a DEBUG build (i.e.
void LogDebugForException (const std::exception &e, const char *fmt,...)
 LogDebugForException only writes text to the error console if the console is set to log level: DebugLog Log level DebugLog is the most verbose logging level in release builds.
void LogInfoForException (const std::exception &e, const char *fmt,...)
 LogInfoForException always writes text to the error console, and corresponds to the log level: InfoLog.
void LogWarnForException (const std::exception &e, const char *fmt,...)
 LogWarnForException writes text to the error console including a warning icon, and also shows a warning icon in the bottom pane.
void LogErrorForException (const std::exception &e, const char *fmt,...)
 LogErrorForException writes text to the error console and pops up the error console.
void LogAlertForException (const std::exception &e, const char *fmt,...)
 LogAlertForException pops up a message box displaying the alert message and logs to the error console.
void LogWithStackTrace (BNLogLevel level, const char *fmt,...)
 Logs to the error console with the given BNLogLevel.
void LogTraceWithStackTrace (const char *fmt,...)
 LogTraceWithStackTrace only writes text to the error console if the console is set to log level: DebugLog Log level and the build is not a DEBUG build (i.e.
void LogDebugWithStackTrace (const char *fmt,...)
 LogDebugWithStackTrace only writes text to the error console if the console is set to log level: DebugLog Log level DebugLog is the most verbose logging level in release builds.
void LogInfoWithStackTrace (const char *fmt,...)
 LogInfoWithStackTrace always writes text to the error console, and corresponds to the log level: InfoLog.
void LogWarnWithStackTrace (const char *fmt,...)
 LogWarnWithStackTrace writes text to the error console including a warning icon, and also shows a warning icon in the bottom pane.
void LogErrorWithStackTrace (const char *fmt,...)
 LogErrorWithStackTrace writes text to the error console and pops up the error console.
void LogAlertWithStackTrace (const char *fmt,...)
 LogAlertWithStackTrace pops up a message box displaying the alert message and logs to the error console.
void LogFV (BNLogLevel level, fmt::string_view format, fmt::format_args args)
void LogTraceFV (fmt::string_view format, fmt::format_args args)
void LogForExceptionFV (BNLogLevel level, const std::exception &e, fmt::string_view format, fmt::format_args args)
void LogTraceForExceptionFV (const std::exception &e, fmt::string_view format, fmt::format_args args)
void LogWithStackTraceFV (BNLogLevel level, fmt::string_view format, fmt::format_args args)
void LogTraceWithStackTraceFV (fmt::string_view format, fmt::format_args args)
template<typename... T>
void LogF (BNLogLevel level, fmt::format_string< T... > format, T &&... args)
 Logs to the error console with the given BNLogLevel.
template<typename... T>
void LogTraceF (fmt::format_string< T... > format, T &&... args)
 LogTrace only writes text to the error console if the console is set to log level: DebugLog Log level and the build is not a DEBUG build (i.e.
template<typename... T>
void LogDebugF (fmt::format_string< T... > format, T &&... args)
 LogDebug only writes text to the error console if the console is set to log level: DebugLog Log level DebugLog is the most verbose logging level in release builds.
template<typename... T>
void LogInfoF (fmt::format_string< T... > format, T &&... args)
 LogInfo always writes text to the error console, and corresponds to the log level: InfoLog.
template<typename... T>
void LogWarnF (fmt::format_string< T... > format, T &&... args)
 LogWarn writes text to the error console including a warning icon, and also shows a warning icon in the bottom pane.
template<typename... T>
void LogErrorF (fmt::format_string< T... > format, T &&... args)
 LogError writes text to the error console and pops up the error console.
template<typename... T>
void LogAlertF (fmt::format_string< T... > format, T &&... args)
 LogAlert pops up a message box displaying the alert message and logs to the error console.
template<typename... T>
void LogForExceptionF (BNLogLevel level, const std::exception &e, fmt::format_string< T... > format, T &&... args)
 Logs to the error console with the given BNLogLevel.
template<typename... T>
void LogTraceForExceptionF (const std::exception &e, fmt::format_string< T... > format, T &&... args)
 LogTraceForExceptionF only writes text to the error console if the console is set to log level: DebugLog Log level and the build is not a DEBUG build (i.e.
template<typename... T>
void LogDebugForExceptionF (const std::exception &e, fmt::format_string< T... > format, T &&... args)
 LogDebugForExceptionF only writes text to the error console if the console is set to log level: DebugLog Log level DebugLog is the most verbose logging level in release builds.
template<typename... T>
void LogInfoForExceptionF (const std::exception &e, fmt::format_string< T... > format, T &&... args)
 LogInfoForExceptionF always writes text to the error console, and corresponds to the log level: InfoLog.
template<typename... T>
void LogWarnForExceptionF (const std::exception &e, fmt::format_string< T... > format, T &&... args)
 LogWarnForExceptionF writes text to the error console including a warning icon, and also shows a warning icon in the bottom pane.
template<typename... T>
void LogErrorForExceptionF (const std::exception &e, fmt::format_string< T... > format, T &&... args)
 LogErrorForExceptionF writes text to the error console and pops up the error console.
template<typename... T>
void LogAlertForExceptionF (const std::exception &e, fmt::format_string< T... > format, T &&... args)
 LogAlertForExceptionF pops up a message box displaying the alert message and logs to the error console.
template<typename... T>
void LogWithStackTraceF (BNLogLevel level, fmt::format_string< T... > format, T &&... args)
 Logs to the error console with the given BNLogLevel.
template<typename... T>
void LogTraceWithStackTraceF (fmt::format_string< T... > format, T &&... args)
 LogTraceWithStackTraceF only writes text to the error console if the console is set to log level: DebugLog Log level and the build is not a DEBUG build (i.e.
template<typename... T>
void LogDebugWithStackTraceF (fmt::format_string< T... > format, T &&... args)
 LogDebugWithStackTraceF only writes text to the error console if the console is set to log level: DebugLog Log level DebugLog is the most verbose logging level in release builds.
template<typename... T>
void LogInfoWithStackTraceF (fmt::format_string< T... > format, T &&... args)
 LogInfoWithStackTraceF always writes text to the error console, and corresponds to the log level: InfoLog.
template<typename... T>
void LogWarnWithStackTraceF (fmt::format_string< T... > format, T &&... args)
 LogWarnWithStackTraceF writes text to the error console including a warning icon, and also shows a warning icon in the bottom pane.
template<typename... T>
void LogErrorWithStackTraceF (fmt::format_string< T... > format, T &&... args)
 LogErrorWithStackTraceF writes text to the error console and pops up the error console.
template<typename... T>
void LogAlertWithStackTraceF (fmt::format_string< T... > format, T &&... args)
 LogAlertWithStackTraceF pops up a message box displaying the alert message and logs to the error console.
void LogToStdout (BNLogLevel minimumLevel)
 Redirects the minimum level passed to standard out.
void LogToStderr (BNLogLevel minimumLevel)
 Redirects the minimum level passed to standard error.
bool LogToFile (BNLogLevel minimumLevel, const std::string &path, bool append=false)
 Redirects minimum log level to the file at `path`, optionally appending rather than overwriting.
void CloseLogs ()
 Close all log files.
std::string EscapeString (const std::string &s)
std::string UnescapeString (const std::string &s)
bool PreprocessSource (const std::string &source, const std::string &fileName, std::string &output, std::string &errors, const std::vector< std::string > &includeDirs=std::vector< std::string >())
void DisablePlugins ()
bool IsPluginsEnabled ()
bool InitPlugins (bool allowUserPlugins=true)
void InitCorePlugins ()
void InitUserPlugins ()
void InitRepoPlugins ()
std::string GetBundledPluginDirectory ()
void SetBundledPluginDirectory (const std::string &path)
std::string GetUserDirectory ()
std::string GetSystemCacheDirectory ()
 Get the Binary Ninja system cache directory.
std::string GetSettingsFileName ()
std::string GetRepositoriesDirectory ()
std::string GetInstallDirectory ()
std::string GetUserPluginDirectory ()
std::string GetPathRelativeToBundledPluginDirectory (const std::string &path)
std::string GetPathRelativeToUserPluginDirectory (const std::string &path)
std::string GetPathRelativeToUserDirectory (const std::string &path)
bool ExecuteWorkerProcess (const std::string &path, const std::vector< std::string > &args, const DataBuffer &input, std::string &output, std::string &errors, bool stdoutIsText=false, bool stderrIsText=true)
std::string GetVersionString ()
VersionInfo GetVersionInfo ()
VersionInfo ParseVersionString (const std::string &version)
std::string GetLicensedUserEmail ()
std::string GetProduct ()
std::string GetProductType ()
std::string GetSerialNumber ()
int GetLicenseCount ()
bool IsUIEnabled ()
uint32_t GetBuildId ()
bool AreAutoUpdatesEnabled ()
void SetAutoUpdatesEnabled (bool enabled)
uint64_t GetTimeSinceLastUpdateCheck ()
void UpdatesChecked ()
std::string GetActiveUpdateChannel ()
void SetActiveUpdateChannel (const std::string &channel)
void SetCurrentPluginLoadOrder (BNPluginLoadOrder order)
void AddRequiredPluginDependency (const std::string &name)
void AddOptionalPluginDependency (const std::string &name)
template<typename T>
std::string CoreEnumName ()
template<typename T>
std::optional< std::string > CoreEnumToString (T value)
template<typename T>
std::optional< T > CoreEnumFromString (const std::string &value)
std::optional< size_t > FuzzyMatchSingle (const std::string &target, const std::string &query)
bool DefaultProgressFunction (size_t, size_t)
Ref< BinaryViewLoad (const std::string &filename, bool updateAnalysis=true, const std::string &options="{}", ProgressFunction progress={})
 OpenView opens a file on disk and returns a BinaryView, attempting to use the most relevant BinaryViewType and generating default load options (which are overridable).
Ref< BinaryViewLoad (const DataBuffer &rawData, bool updateAnalysis=true, const std::string &options="{}", ProgressFunction progress={})
 Open a BinaryView from a raw data buffer, initializing data views and loading settings.
Ref< BinaryViewLoad (Ref< BinaryView > rawData, bool updateAnalysis=true, const std::string &options="{}", ProgressFunction progress={})
 Open a BinaryView from a raw BinaryView, initializing data views and loading settings.
Ref< BinaryViewLoad (Ref< ProjectFile > rawData, bool updateAnalysis=true, const std::string &options="{}", ProgressFunction progress={})
 Open a BinaryView from a ProjectFile, initializing data views and loading settings.
Ref< BinaryViewParseTextFormat (const std::string &filename)
Ref< BinaryViewLoad (const std::string &filename, bool updateAnalysis, ProgressFunction progress, Ref< Metadata > options=new Metadata(MetadataType::KeyValueDataType))
 Deprecated.
Ref< BinaryViewLoad (const DataBuffer &rawData, bool updateAnalysis, ProgressFunction progress, Ref< Metadata > options=new Metadata(MetadataType::KeyValueDataType))
 Deprecated.
Ref< BinaryViewLoad (Ref< BinaryView > rawData, bool updateAnalysis, ProgressFunction progress, Ref< Metadata > options=new Metadata(MetadataType::KeyValueDataType), bool isDatabase=false)
 Deprecated.
bool DemangleGeneric (Ref< Architecture > arch, const std::string &mangledName, Ref< Type > &outType, QualifiedName &outVarName, Ref< BinaryView > view=nullptr, const bool simplify=false)
 Attempt to demangle a mangled name, trying all relevant demanglers and using whichever one accepts it.
bool DemangleLLVM (const std::string &mangledName, QualifiedName &outVarName, const bool simplify=false)
 Demangles using LLVM's demangler.
bool DemangleLLVM (const std::string &mangledName, QualifiedName &outVarName, BinaryView *view)
 Demangles using LLVM's demangler.
bool DemangleMS (Architecture *arch, const std::string &mangledName, Ref< Type > &outType, QualifiedName &outVarName, const bool simplify=false)
 Demangles a Microsoft Visual Studio C++ name.
bool DemangleMS (Architecture *arch, const std::string &mangledName, Ref< Type > &outType, QualifiedName &outVarName, BinaryView *view)
 Demangles a Microsoft Visual Studio C++ name.
bool DemangleGNU3 (Ref< Architecture > arch, const std::string &mangledName, Ref< Type > &outType, QualifiedName &outVarName, const bool simplify=false)
 Demangles a GNU3 name.
bool DemangleGNU3 (Ref< Architecture > arch, const std::string &mangledName, Ref< Type > &outType, QualifiedName &outVarName, BinaryView *view)
 Demangles a GNU3 name.
bool IsGNU3MangledString (const std::string &mangledName)
 Determines if a symbol name is a mangled GNU3 name.
std::string SimplifyToString (const std::string &input)
std::string SimplifyToString (const QualifiedName &input)
QualifiedName SimplifyToQualifiedName (const std::string &input, bool simplify)
QualifiedName SimplifyToQualifiedName (const QualifiedName &input)
void RegisterMainThread (MainThreadActionHandler *handler)
Ref< MainThreadActionExecuteOnMainThread (const std::function< void()> &action)
void ExecuteOnMainThreadAndWait (const std::function< void()> &action)
bool IsMainThread ()
void WorkerEnqueue (const std::function< void()> &action, const std::string &name="")
void WorkerEnqueue (RefCountObject *owner, const std::function< void()> &action, const std::string &name="")
void WorkerPriorityEnqueue (const std::function< void()> &action, const std::string &name="")
void WorkerPriorityEnqueue (RefCountObject *owner, const std::function< void()> &action, const std::string &name="")
void WorkerInteractiveEnqueue (const std::function< void()> &action, const std::string &name="")
void WorkerInteractiveEnqueue (RefCountObject *owner, const std::function< void()> &action, const std::string &name="")
size_t GetWorkerThreadCount ()
void SetWorkerThreadCount (size_t count)
std::string MarkdownToHTML (const std::string &contents)
void RegisterInteractionHandler (InteractionHandler *handler)
void ShowPlainTextReport (const std::string &title, const std::string &contents)
 Displays contents to the user in the UI or on the command-line.
void ShowMarkdownReport (const std::string &title, const std::string &contents, const std::string &plainText="")
 Displays markdown contents to the user in the UI or on the command-line.
void ShowHTMLReport (const std::string &title, const std::string &contents, const std::string &plainText="")
 Displays HTML contents to the user in the UI or on the command-line.
void ShowGraphReport (const std::string &title, FlowGraph *graph)
 Displays a flow graph in UI applications and nothing in command-line applications.
void ShowReportCollection (const std::string &title, ReportCollection *reports)
 Show a collection of reports.
bool GetTextLineInput (std::string &result, const std::string &prompt, const std::string &title)
 Prompts the user to input a string with the given prompt and title.
bool GetIntegerInput (int64_t &result, const std::string &prompt, const std::string &title)
 Prompts the user to input an integer with the given prompt and title.
bool GetAddressInput (uint64_t &result, const std::string &prompt, const std::string &title)
 Prompts the user to input an unsigned integer with the given prompt and title.
bool GetChoiceInput (size_t &idx, const std::string &prompt, const std::string &title, const std::vector< std::string > &choices)
 Prompts the user to select the one of the provided choices.
bool GetLargeChoiceInput (size_t &idx, const std::string &title, const std::string &prompt, const std::vector< std::string > &choices)
 Prompts the user to select the one of the provided choices out of a large list, with the option to filter choices.
bool GetOpenFileNameInput (std::string &result, const std::string &prompt, const std::string &ext="")
 Prompts the user for a file name to open.
bool GetSaveFileNameInput (std::string &result, const std::string &prompt, const std::string &ext="", const std::string &defaultName="")
 Prompts the user for a file name to save as, optionally providing a file extension and defaultName.
bool GetDirectoryNameInput (std::string &result, const std::string &prompt, const std::string &defaultName="")
 Prompts the user for a directory name to save as, optionally providing a default_name.
bool GetCheckboxInput (int64_t &result, const std::string &prompt, const std::string &title, const int64_t &defaultChoice)
 Prompts the user for a checkbox input.
bool GetFormInput (std::vector< FormInputField > &fields, const std::string &title)
 Prompts the user for a set of inputs specified in `fields` with given title.
BNMessageBoxButtonResult ShowMessageBox (const std::string &title, const std::string &text, BNMessageBoxButtonSet buttons=OKButtonSet, BNMessageBoxIcon icon=InformationIcon)
 Displays a configurable message box in the UI, or prompts on the console as appropriate.
bool OpenUrl (const std::string &url)
 Opens a given url in the user's web browser, if available.
bool RunProgressDialog (const std::string &title, bool canCancel, std::function< void(ProgressFunction progress)> task)
 Run a given task in a background thread, and show an updating progress bar which the user can cancel.
ProgressFunction SplitProgress (ProgressFunction originalFn, size_t subpart, size_t subpartCount)
 Split a single progress function into equally sized subparts.
ProgressFunction SplitProgress (ProgressFunction originalFn, size_t subpart, std::vector< double > subpartWeights)
 Split a single progress function into subparts.
bool ProgressCallback (void *ctxt, size_t current, size_t total)
std::string GetUniqueIdentifierString ()
std::map< std::string, uint64_t > GetMemoryUsageInfo ()
void SetThreadName (const std::string &name)
template<>
std::string Settings::Get< std::string > (const std::string &key, Ref< Function > func, BNSettingsScope *scope)
template<>
std::vector< std::string > Settings::Get< std::vector< std::string > > (const std::string &key, Ref< Function > func, BNSettingsScope *scope)
string SimplifyToString (const string &input)
QualifiedName SimplifyToQualifiedName (const string &input, bool simplify)
char * AllocApiString (const char *string)
void AllocApiString (const char *string, char **output)
char * AllocApiString (const std::string &string)
void AllocApiString (const std::string &string, char **output)
char ** AllocApiStringList (const char *const *stringList, size_t count)
void AllocApiStringList (const char *const *stringList, size_t count, char ***output)
char ** AllocApiStringList (const std::vector< std::string > &stringList, size_t *count)
void AllocApiStringList (const std::vector< std::string > &stringList, char ***output, size_t *count)
char ** AllocApiStringList (const std::set< std::string > &stringList, size_t *count)
void AllocApiStringList (const std::set< std::string > &stringList, char ***output, size_t *count)
char ** AllocApiStringList (const std::unordered_set< std::string > &stringList, size_t *count)
void AllocApiStringList (const std::unordered_set< std::string > &stringList, char ***output, size_t *count)
void AllocApiStringPairList (const std::vector< std::pair< std::string, std::string > > &stringPairList, char ***outputKeys, char ***outputValues, size_t *count)
void AllocApiStringPairList (const std::map< std::string, std::string > &stringPairList, char ***outputKeys, char ***outputValues, size_t *count)
void AllocApiStringPairList (const std::unordered_map< std::string, std::string > &stringPairList, char ***outputKeys, char ***outputValues, size_t *count)
std::string ParseString (const char *string)
std::vector< std::string > ParseStringList (const char *const *stringList, size_t count)
std::set< std::string > ParseStringSet (const char *const *stringList, size_t count)
std::unordered_set< std::string > ParseStringUnorderedSet (const char *const *stringList, size_t count)
std::vector< std::pair< std::string, std::string > > ParseStringPairList (const char *const *keys, const char *const *values, size_t count)
std::map< std::string, std::string > ParseStringMap (const char *const *keys, const char *const *values, size_t count)
std::unordered_map< std::string, std::string > ParseStringUnorderedMap (const char *const *keys, const char *const *values, size_t count)
void FreeApiString (char *string)
void FreeApiStringList (char **stringList, size_t count)
void FreeApiStringPairList (char **keys, char **values, size_t count)
void FreeCoreString (char *string)
void FreeCoreStringList (char **stringList, size_t count)
void FreeCoreStringPairList (char **keys, char **values, size_t count)
template<typename T, typename _ = std::enable_if_t<APIAble<T>::value, void>>
void AllocAPIObjectList (const std::vector< T > &objects, typename APIAble< T >::TAPI **output, size_t *count)
template<typename T, typename _ = std::enable_if_t<APIAble<T>::value, void>>
APIAble< T >::TAPI * AllocAPIObjectList (const std::vector< T > &objects, size_t *count)
template<typename T, typename _ = std::enable_if_t<APIAble<T>::value, void>>
std::vector< T > ParseAPIObjectList (const typename APIAble< T >::TAPI *objects, size_t count)
template<typename T, typename _ = std::enable_if_t<APIAble<T>::value, void>>
void FreeAPIObjectList (typename APIAble< T >::TAPI *objects, size_t count)
template<typename T, typename F, typename C>
WrapThrowable (F &&func, C &&catcher)
 Wrap a throwable block in a try/catch, passing through the return value on success, and calling a catch handler and passing through its return value on an exception.
template<typename T, typename F>
WrapThrowablePointer (F &&func, typename std::enable_if< std::is_pointer< T >::value, int >::type _=0)
 Wrap a throwable block in a try/catch, passing through the return value on success.
template<typename F>
bool WrapThrowableBool (F &&func)
 Wrap a throwable block in a try/catch, passing through the return value on success.

Class Documentation

◆ BinaryNinja::ProgressContext

struct BinaryNinja::ProgressContext
Class Members
ProgressFunction callback

◆ BinaryNinja::ReferenceSource

struct BinaryNinja::ReferenceSource
Class Members
Ref< Function > func
Ref< Architecture > arch
uint64_t addr

◆ BinaryNinja::TypeFieldReference

struct BinaryNinja::TypeFieldReference
Class Members
Ref< Function > func
Ref< Architecture > arch
uint64_t addr
size_t size
Confidence< Ref< Type > > incomingType

◆ BinaryNinja::ILReferenceSource

struct BinaryNinja::ILReferenceSource
Class Members
Ref< Function > func
Ref< Architecture > arch
uint64_t addr
BNFunctionGraphType type
size_t exprId

◆ BinaryNinja::TypeReferenceSource

struct BinaryNinja::TypeReferenceSource
Class Members
QualifiedName name
uint64_t offset
BNTypeReferenceType type

◆ BinaryNinja::AllTypeReferences

struct BinaryNinja::AllTypeReferences
Class Members
vector< ReferenceSource > codeRefs
vector< uint64_t > dataRefs
vector< TypeReferenceSource > typeRefs

◆ BinaryNinja::AllTypeFieldReferences

struct BinaryNinja::AllTypeFieldReferences
Class Members
vector< TypeFieldReference > codeRefs
vector< uint64_t > dataRefsTo
vector< uint64_t > dataRefsFrom
vector< TypeReferenceSource > typeRefs

◆ BinaryNinja::VariableReferenceSource

struct BinaryNinja::VariableReferenceSource
Class Members
Variable var
ILReferenceSource source

◆ BinaryNinja::FindParameters

struct BinaryNinja::FindParameters
Class Members
BNFindType type
BNFindRangeType rangeType
FunctionViewType ilType
string string
BNFindFlag flags
bool findAll
bool advancedSearch
bool overlap
int alignment
uint64_t findConstant
DataBuffer findBuffer
vector< BNAddressRange > ranges
uint64_t totalLength

◆ BinaryNinja::BaseAddressDetectionSettings

struct BinaryNinja::BaseAddressDetectionSettings
Class Members
string Architecture
string Analysis
uint32_t MinStrlen
uint32_t Alignment
uint64_t LowerBoundary
uint64_t UpperBoundary
BNBaseAddressDetectionPOISetting POIAnalysis
uint32_t MaxPointersPerCluster

◆ BinaryNinja::FirmwareNinjaDevice

struct BinaryNinja::FirmwareNinjaDevice
Class Members
string name
uint64_t start
uint64_t end
string info

◆ BinaryNinja::FirmwareNinjaFunctionMemoryAccesses

struct BinaryNinja::FirmwareNinjaFunctionMemoryAccesses
Class Members
uint64_t start
size_t count
vector< BNFirmwareNinjaMemoryAccess > accesses

◆ BinaryNinja::FirmwareNinjaDeviceAccesses

struct BinaryNinja::FirmwareNinjaDeviceAccesses
Class Members
string name
size_t total
size_t unique

Typedef Documentation

◆ MetadataType

◆ ProgressFunction

typedef std::function<bool(size_t, size_t)> BinaryNinja::ProgressFunction

◆ TransformCapabilities

◆ ExprId

typedef size_t BinaryNinja::ExprId

◆ PluginOrigin

◆ PluginStatus

◆ PluginType

Enumeration Type Documentation

◆ ReferenceType

Enumerator
UnspecifiedReferenceType 
ReadReferenceType 
WriteReferenceType 
ExecuteReferenceType 
DataVariableReferenceType 
DirectTypeReferenceType 
IndirectTypeReferenceType 

Function Documentation

◆ operator==() [1/2]

template<class T>
bool BinaryNinja::operator== ( T * a,
const Ref< T > & b )

◆ operator!=() [1/2]

template<class T>
bool BinaryNinja::operator!= ( T * a,
const Ref< T > & b )

◆ operator<() [1/2]

template<class T>
bool BinaryNinja::operator< ( T * a,
const Ref< T > & b )

◆ operator==() [2/2]

template<class T>
bool BinaryNinja::operator== ( T * a,
const CallbackRef< T > & b )

◆ operator!=() [2/2]

template<class T>
bool BinaryNinja::operator!= ( T * a,
const CallbackRef< T > & b )

◆ operator<() [2/2]

template<class T>
bool BinaryNinja::operator< ( T * a,
const CallbackRef< T > & b )

◆ LogFV()

void BinaryNinja::LogFV ( BNLogLevel level,
fmt::string_view format,
fmt::format_args args )

◆ LogTraceFV()

void BinaryNinja::LogTraceFV ( fmt::string_view format,
fmt::format_args args )

◆ LogForExceptionFV()

void BinaryNinja::LogForExceptionFV ( BNLogLevel level,
const std::exception & e,
fmt::string_view format,
fmt::format_args args )

◆ LogTraceForExceptionFV()

void BinaryNinja::LogTraceForExceptionFV ( const std::exception & e,
fmt::string_view format,
fmt::format_args args )

◆ LogWithStackTraceFV()

void BinaryNinja::LogWithStackTraceFV ( BNLogLevel level,
fmt::string_view format,
fmt::format_args args )

◆ LogTraceWithStackTraceFV()

void BinaryNinja::LogTraceWithStackTraceFV ( fmt::string_view format,
fmt::format_args args )

◆ DefaultProgressFunction()

bool BinaryNinja::DefaultProgressFunction ( size_t ,
size_t  )

◆ Load() [1/7]

Ref< BinaryView > BinaryNinja::Load ( const std::string & filename,
bool updateAnalysis = true,
const std::string & options = "{}",
ProgressFunction progress = {} )

OpenView opens a file on disk and returns a BinaryView, attempting to use the most relevant BinaryViewType and generating default load options (which are overridable).

Thread Safe:
Main Thread Only

If there is any error loading the file, nullptr will be returned and a log error will be printed.

\warn You will need to call bv->GetFile()->Close() when you are finished using the view returned by this function to free the resources it opened.

If no BinaryViewType is available to load the file, the `Mapped` view type will attempt to load it, and will try to auto-detect the architecture. If no architecture is detected or specified in the load options, the `Mapped` type will fail and this function will also return nullptr.

Note
Although general container file support is not complete, support for Universal archives exists. It's possible to control the architecture preference with the `files.universal.architecturePreference` setting. This setting is scoped to SettingsUserScope and can be modified as follows:
Metadata options = {{"files.universal.architecturePreference", Metadata({"arm64"})}};
Ref<BinaryView> bv = Load("/bin/ls", true, {}, options);
Parameters
filenamePath to filename or BNDB to open.
updateAnalysisIf true, UpdateAnalysisAndWait() will be called after opening a BinaryView.
optionsA Json string whose keys are setting identifiers and whose values are the desired settings.
progressOptional function to be called with progress updates as the view is being loaded. If the function returns false, it will cancel Load.
Returns
Constructed view, or a nullptr Ref<BinaryView>

◆ Load() [2/7]

Ref< BinaryView > BinaryNinja::Load ( const DataBuffer & rawData,
bool updateAnalysis = true,
const std::string & options = "{}",
ProgressFunction progress = {} )

Open a BinaryView from a raw data buffer, initializing data views and loading settings.

Thread Safe:
Main Thread Only
See also
BinaryNinja::Load(const std::string&, bool, ProgressFunction, Json::Value) for discussion of this Function.
Parameters
rawDataBuffer with raw binary data to load (cannot load from bndb)
updateAnalysisIf true, UpdateAnalysisAndWait() will be called after opening a BinaryView.
optionsA Json string whose keys are setting identifiers and whose values are the desired settings.
progressOptional function to be called with progress updates as the view is being loaded. If the function returns false, it will cancel Load.
Returns
Constructed view, or a nullptr Ref<BinaryView>

◆ Load() [3/7]

Ref< BinaryView > BinaryNinja::Load ( Ref< BinaryView > rawData,
bool updateAnalysis = true,
const std::string & options = "{}",
ProgressFunction progress = {} )

Open a BinaryView from a raw BinaryView, initializing data views and loading settings.

Thread Safe:
Main Thread Only
See also
BinaryNinja::Load(const std::string&, bool, ProgressFunction, Json::Value) for discussion of this Function.
Parameters
rawDataBinaryView with raw binary data to load
updateAnalysisIf true, UpdateAnalysisAndWait() will be called after opening a BinaryView.
optionsA Json string whose keys are setting identifiers and whose values are the desired settings.
progressOptional function to be called with progress updates as the view is being loaded. If the function returns false, it will cancel Load.
Returns
Constructed view, or a nullptr Ref<BinaryView>

◆ Load() [4/7]

Ref< BinaryView > BinaryNinja::Load ( Ref< ProjectFile > rawData,
bool updateAnalysis = true,
const std::string & options = "{}",
ProgressFunction progress = {} )

Open a BinaryView from a ProjectFile, initializing data views and loading settings.

Thread Safe:
Main Thread Only
See also
BinaryNinja::Load(const std::string&, bool, ProgressFunction, Json::Value) for discussion of this Function.
Parameters
rawDataBinaryView with raw binary data to load
updateAnalysisIf true, UpdateAnalysisAndWait() will be called after opening a BinaryView.
optionsA Json string whose keys are setting identifiers and whose values are the desired settings.
progressOptional function to be called with progress updates as the view is being loaded. If the function returns false, it will cancel Load.
Returns
Constructed view, or a nullptr Ref<BinaryView>

◆ ParseTextFormat()

Ref< BinaryView > BinaryNinja::ParseTextFormat ( const std::string & filename)

◆ Load() [5/7]

Ref< BinaryView > BinaryNinja::Load ( const std::string & filename,
bool updateAnalysis,
ProgressFunction progress,
Ref< Metadata > options = new Metadata(MetadataType::KeyValueDataType) )

Deprecated.

Use non-metadata version.

◆ Load() [6/7]

Ref< BinaryView > BinaryNinja::Load ( const DataBuffer & rawData,
bool updateAnalysis,
ProgressFunction progress,
Ref< Metadata > options = new Metadata(MetadataType::KeyValueDataType) )

Deprecated.

Use non-metadata version.

◆ Load() [7/7]

Ref< BinaryView > BinaryNinja::Load ( Ref< BinaryView > rawData,
bool updateAnalysis,
ProgressFunction progress,
Ref< Metadata > options = new Metadata(MetadataType::KeyValueDataType),
bool isDatabase = false )

Deprecated.

Use non-metadata version.

◆ MarkdownToHTML()

std::string BinaryNinja::MarkdownToHTML ( const std::string & contents)
Thread Safe:
Yes

◆ RegisterInteractionHandler()

void BinaryNinja::RegisterInteractionHandler ( InteractionHandler * handler)

◆ RunProgressDialog()

bool BinaryNinja::RunProgressDialog ( const std::string & title,
bool canCancel,
std::function< void(ProgressFunction progress)> task )

Run a given task in a background thread, and show an updating progress bar which the user can cancel.

Thread Safe:
Yes
Parameters
titleDialog title
canCancelIf the task can be cancelled
taskFunction to perform the task, taking as a parameter a function which should be called to report progress updates and check for cancellation. If the progress function returns false, the user has requested to cancel, and the task should handle this appropriately.
Returns
True if not cancelled

◆ SplitProgress() [1/2]

BinaryNinja::ProgressFunction BinaryNinja::SplitProgress ( BinaryNinja::ProgressFunction originalFn,
size_t subpart,
size_t subpartCount )

Split a single progress function into equally sized subparts.

This function takes the original progress function and returns a new function whose signature is the same but whose output is shortened to correspond to the specified subparts.

Thread Safe:
Yes

E.g. If subpart = 0 and subpartCount = 3, this returns a function that calls originalFn and has all of its progress multiplied by 1/3 and 0/3 added.

Internally this works by calling originalFn with total = 1000000 and doing math on the current value

Parameters
originalFnOriginal progress function (usually updates a UI)
subpartIndex of subpart whose function to return, from 0 to (subpartCount - 1)
subpartCountTotal number of subparts
Returns
A function that will call originalFn() within a modified progress region

◆ SplitProgress() [2/2]

BinaryNinja::ProgressFunction BinaryNinja::SplitProgress ( BinaryNinja::ProgressFunction originalFn,
size_t subpart,
std::vector< double > subpartWeights )

Split a single progress function into subparts.

This function takes the original progress function and returns a new function whose signature is the same but whose output is shortened to correspond to the specified subparts.

Thread Safe:
Yes

The length of a subpart is proportional to the sum of all the weights. E.g. If subpart = 1 and subpartWeights = { 0.25, 0.5, 0.25 }, this will return a function that calls originalFn and maps its progress to the range [0.25, 0.75]

Internally this works by calling originalFn with total = 1000000 and doing math on the current value

Parameters
originalFnOriginal progress function (usually updates a UI)
subpartIndex of subpart whose function to return, from 0 to (subpartWeights.size() - 1)
subpartWeightsWeights of subparts, described above
Returns
A function that will call originalFn() within a modified progress region

◆ ProgressCallback()

bool BinaryNinja::ProgressCallback ( void * ctxt,
size_t current,
size_t total )

◆ GetUniqueIdentifierString()

string BinaryNinja::GetUniqueIdentifierString ( )

◆ GetMemoryUsageInfo()

map< string, uint64_t > BinaryNinja::GetMemoryUsageInfo ( )

◆ SetThreadName()

void BinaryNinja::SetThreadName ( const std::string & name)

◆ Settings::Get< std::string >()

template<>
std::string BinaryNinja::Settings::Get< std::string > ( const std::string & key,
Ref< Function > func,
BNSettingsScope * scope )

◆ Settings::Get< std::vector< std::string > >()

template<>
std::vector< std::string > BinaryNinja::Settings::Get< std::vector< std::string > > ( const std::string & key,
Ref< Function > func,
BNSettingsScope * scope )

◆ SimplifyToString()

string BinaryNinja::SimplifyToString ( const string & input)

◆ SimplifyToQualifiedName()

QualifiedName BinaryNinja::SimplifyToQualifiedName ( const string & input,
bool simplify )

◆ AllocApiString() [1/4]

char * BinaryNinja::AllocApiString ( const char * string)

◆ AllocApiString() [2/4]

void BinaryNinja::AllocApiString ( const char * string,
char ** output )

◆ AllocApiString() [3/4]

char * BinaryNinja::AllocApiString ( const std::string & string)

◆ AllocApiString() [4/4]

void BinaryNinja::AllocApiString ( const std::string & string,
char ** output )

◆ AllocApiStringList() [1/8]

char ** BinaryNinja::AllocApiStringList ( const char *const * stringList,
size_t count )

◆ AllocApiStringList() [2/8]

void BinaryNinja::AllocApiStringList ( const char *const * stringList,
size_t count,
char *** output )

◆ AllocApiStringList() [3/8]

char ** BinaryNinja::AllocApiStringList ( const std::vector< std::string > & stringList,
size_t * count )

◆ AllocApiStringList() [4/8]

void BinaryNinja::AllocApiStringList ( const std::vector< std::string > & stringList,
char *** output,
size_t * count )

◆ AllocApiStringList() [5/8]

char ** BinaryNinja::AllocApiStringList ( const std::set< std::string > & stringList,
size_t * count )

◆ AllocApiStringList() [6/8]

void BinaryNinja::AllocApiStringList ( const std::set< std::string > & stringList,
char *** output,
size_t * count )

◆ AllocApiStringList() [7/8]

char ** BinaryNinja::AllocApiStringList ( const std::unordered_set< std::string > & stringList,
size_t * count )

◆ AllocApiStringList() [8/8]

void BinaryNinja::AllocApiStringList ( const std::unordered_set< std::string > & stringList,
char *** output,
size_t * count )

◆ AllocApiStringPairList() [1/3]

void BinaryNinja::AllocApiStringPairList ( const std::vector< std::pair< std::string, std::string > > & stringPairList,
char *** outputKeys,
char *** outputValues,
size_t * count )

◆ AllocApiStringPairList() [2/3]

void BinaryNinja::AllocApiStringPairList ( const std::map< std::string, std::string > & stringPairList,
char *** outputKeys,
char *** outputValues,
size_t * count )

◆ AllocApiStringPairList() [3/3]

void BinaryNinja::AllocApiStringPairList ( const std::unordered_map< std::string, std::string > & stringPairList,
char *** outputKeys,
char *** outputValues,
size_t * count )

◆ ParseString()

string BinaryNinja::ParseString ( const char * string)

◆ ParseStringList()

vector< string > BinaryNinja::ParseStringList ( const char *const * stringList,
size_t count )

◆ ParseStringSet()

set< string > BinaryNinja::ParseStringSet ( const char *const * stringList,
size_t count )

◆ ParseStringUnorderedSet()

unordered_set< string > BinaryNinja::ParseStringUnorderedSet ( const char *const * stringList,
size_t count )

◆ ParseStringPairList()

vector< pair< string, string > > BinaryNinja::ParseStringPairList ( const char *const * keys,
const char *const * values,
size_t count )

◆ ParseStringMap()

map< string, string > BinaryNinja::ParseStringMap ( const char *const * keys,
const char *const * values,
size_t count )

◆ ParseStringUnorderedMap()

unordered_map< string, string > BinaryNinja::ParseStringUnorderedMap ( const char *const * keys,
const char *const * values,
size_t count )

◆ FreeApiString()

void BinaryNinja::FreeApiString ( char * string)

◆ FreeApiStringList()

void BinaryNinja::FreeApiStringList ( char ** stringList,
size_t count )

◆ FreeApiStringPairList()

void BinaryNinja::FreeApiStringPairList ( char ** keys,
char ** values,
size_t count )

◆ FreeCoreString()

void BinaryNinja::FreeCoreString ( char * string)

◆ FreeCoreStringList()

void BinaryNinja::FreeCoreStringList ( char ** stringList,
size_t count )

◆ FreeCoreStringPairList()

void BinaryNinja::FreeCoreStringPairList ( char ** keys,
char ** values,
size_t count )

◆ AllocAPIObjectList() [1/2]

template<typename T, typename _ = std::enable_if_t<APIAble<T>::value, void>>
void BinaryNinja::AllocAPIObjectList ( const std::vector< T > & objects,
typename APIAble< T >::TAPI ** output,
size_t * count )

◆ AllocAPIObjectList() [2/2]

template<typename T, typename _ = std::enable_if_t<APIAble<T>::value, void>>
APIAble< T >::TAPI * BinaryNinja::AllocAPIObjectList ( const std::vector< T > & objects,
size_t * count )

◆ ParseAPIObjectList()

template<typename T, typename _ = std::enable_if_t<APIAble<T>::value, void>>
std::vector< T > BinaryNinja::ParseAPIObjectList ( const typename APIAble< T >::TAPI * objects,
size_t count )

◆ FreeAPIObjectList()

template<typename T, typename _ = std::enable_if_t<APIAble<T>::value, void>>
void BinaryNinja::FreeAPIObjectList ( typename APIAble< T >::TAPI * objects,
size_t count )

◆ WrapThrowable()

template<typename T, typename F, typename C>
T BinaryNinja::WrapThrowable ( F && func,
C && catcher )

Wrap a throwable block in a try/catch, passing through the return value on success, and calling a catch handler and passing through its return value on an exception.

Template Parameters
TReturn type
FThrowable block
CCatch handler
Parameters
funcThrowable block to execute
catcherCatch handler to execute if `func` throws
Returns
Either the func's result or the handler's result

◆ WrapThrowablePointer()

template<typename T, typename F>
T BinaryNinja::WrapThrowablePointer ( F && func,
typename std::enable_if< std::is_pointer< T >::value, int >::type _ = 0 )

Wrap a throwable block in a try/catch, passing through the return value on success.

Specialized for pointers, where nullptr will be returned if an exception is thrown.

Template Parameters
TReturn type
FThrowable block
Parameters
funcThrowable block to execute
Returns
Either the func's result or nullptr

◆ WrapThrowableBool()

template<typename F>
bool BinaryNinja::WrapThrowableBool ( F && func)

Wrap a throwable block in a try/catch, passing through the return value on success.

Specialized for bool and void functions, returning false if the function throws, or

  • if the function returns a bool, passing through that value.
  • if the function returns void, returning true on completion.
    Template Parameters
    FThrowable block
    Parameters
    funcThrowable block to execute
    Returns
    Bool as described above