types module

binaryninja.types.ArrayBuilder(handle[, ...])

binaryninja.types.ArrayType(handle[, ...])

binaryninja.types.BaseStructure(type, offset)

binaryninja.types.BoolBuilder(handle[, ...])

binaryninja.types.BoolType(handle[, ...])

binaryninja.types.BoolWithConfidence(value)

binaryninja.types.CharBuilder(handle[, ...])

binaryninja.types.CharType(handle[, ...])

binaryninja.types.CoreSymbol(handle)

binaryninja.types.EnumerationBuilder(handle, ...)

binaryninja.types.EnumerationMember(name[, ...])

binaryninja.types.EnumerationType(handle[, ...])

binaryninja.types.FloatBuilder(handle[, ...])

binaryninja.types.FloatType(handle[, ...])

binaryninja.types.FunctionBuilder(handle[, ...])

binaryninja.types.FunctionParameter(type[, ...])

binaryninja.types.FunctionType(handle[, ...])

binaryninja.types.InheritedStructureMember(...)

binaryninja.types.IntegerBuilder(handle[, ...])

binaryninja.types.IntegerType(handle[, ...])

binaryninja.types.MutableTypeBuilder(type, ...)

binaryninja.types.NameSpace([name])

binaryninja.types.NamedTypeReferenceBuilder(...)

binaryninja.types.NamedTypeReferenceType(handle)

binaryninja.types.OffsetWithConfidence(value)

binaryninja.types.PointerBuilder(handle[, ...])

binaryninja.types.PointerType(handle[, ...])

binaryninja.types.QualifiedName([name])

binaryninja.types.RegisterSet(regs[, confidence])

binaryninja.types.RegisterStackAdjustmentWithConfidence(value)

binaryninja.types.StructureBuilder(handle, ...)

binaryninja.types.StructureMember(type, ...)

binaryninja.types.StructureType(handle[, ...])

binaryninja.types.Symbol(sym_type, addr, ...)

Symbols are defined as one of the following types:

binaryninja.types.Type(handle[, platform, ...])

class Type allows you to interact with the Binary Ninja type system.

binaryninja.types.TypeBuilder(handle[, ...])

All TypeBuilder objects should not be instantiated directly but created via .create APIs.

binaryninja.types.TypeDefinitionLine(...)

binaryninja.types.TypeFieldReference(func, ...)

binaryninja.types.TypeReferenceSource(name, ...)

binaryninja.types.VoidBuilder(handle[, ...])

binaryninja.types.VoidType(handle[, ...])

binaryninja.types.WideCharBuilder(handle[, ...])

binaryninja.types.WideCharType(handle[, ...])

class ArrayBuilder(handle: LP_BNTypeBuilder, platform: Platform | None = None, confidence: int = 255)[source]

Bases: TypeBuilder

Parameters:
  • handle (LP_BNTypeBuilder) –

  • platform (_platform.Platform | None) –

  • confidence (int) –

classmethod create(type: TypeBuilder | Type, element_count: int, platform: Platform | None = None, confidence: int = 255) ArrayBuilder[source]
Parameters:
Return type:

ArrayBuilder

property children: List[TypeBuilder]
property count: int
property element_type: TypeBuilder
class ArrayType(handle, platform: Platform | None = None, confidence: int = 255)[source]

Bases: Type

Parameters:
  • platform (_platform.Platform | None) –

  • confidence (int) –

classmethod create(element_type: Type, count: int, platform: Platform | None = None, confidence: int = 255) ArrayType[source]
Parameters:
  • element_type (Type) –

  • count (int) –

  • platform (Platform | None) –

  • confidence (int) –

Return type:

ArrayType

property children: List[Type]
property count

Type count (read-only)

property element_type: Type
class BaseStructure(type: Union[ForwardRef('NamedTypeReferenceType'), ForwardRef('StructureType')], offset: int, width: int = 0)[source]

Bases: object

Parameters:
offset: int
type: NamedTypeReferenceType
width: int
class BoolBuilder(handle: LP_BNTypeBuilder, platform: Platform | None = None, confidence: int = 255)[source]

Bases: TypeBuilder

Parameters:
  • handle (LP_BNTypeBuilder) –

  • platform (_platform.Platform | None) –

  • confidence (int) –

classmethod create(platform: Platform | None = None, confidence: int = 255) BoolBuilder[source]
Parameters:
Return type:

BoolBuilder

class BoolType(handle, platform: Platform | None = None, confidence: int = 255)[source]

Bases: Type

Parameters:
  • platform (_platform.Platform | None) –

  • confidence (int) –

classmethod create(platform: Platform | None = None, confidence: int = 255) BoolType[source]
Parameters:
Return type:

BoolType

class BoolWithConfidence(value: bool, confidence: int = 255)[source]

Bases: object

Parameters:
  • value (bool) –

  • confidence (int) –

classmethod from_core_struct(core_struct: BNBoolWithConfidence) BoolWithConfidence[source]
Parameters:

core_struct (BNBoolWithConfidence) –

Return type:

BoolWithConfidence

static get_core_struct(value: bool | BoolWithConfidence, confidence: int = 255) BNBoolWithConfidence[source]
Parameters:
Return type:

BNBoolWithConfidence

confidence: int = 255
value: bool
class CharBuilder(handle: LP_BNTypeBuilder, platform: Platform | None = None, confidence: int = 255)[source]

Bases: IntegerBuilder

Parameters:
  • handle (LP_BNTypeBuilder) –

  • platform (_platform.Platform | None) –

  • confidence (int) –

classmethod create(alternate_name: str = '', platform: Platform | None = None, confidence: int = 255) CharBuilder[source]
Parameters:
  • alternate_name (str) –

  • platform (Platform | None) –

  • confidence (int) –

Return type:

CharBuilder

class CharType(handle, platform: Platform | None = None, confidence: int = 255)[source]

Bases: IntegerType

Parameters:
  • platform (_platform.Platform | None) –

  • confidence (int) –

classmethod create(altname: str = 'char', platform: Platform | None = None, confidence: int = 255) CharType[source]
Parameters:
  • altname (str) –

  • platform (Platform | None) –

  • confidence (int) –

Return type:

CharType

class CoreSymbol(handle: LP_BNSymbol)[source]

Bases: object

Parameters:

handle (LP_BNSymbol) –

property address: int

Symbol address (read-only)

property auto: bool

Whether the symbol was auto-defined

property binding: SymbolBinding

Symbol binding (read-only)

property full_name: str

Symbol full name (read-only)

property handle
property name: str

Symbol name (read-only)

property namespace: NameSpace

Symbol namespace (read-only)

property ordinal: int

Symbol ordinal (read-only)

property raw_bytes: bytes

Bytes of the raw symbol (read-only)

property raw_name: str

Symbol raw name (read-only)

property short_name: str

Symbol short name (read-only)

property type: SymbolType

Symbol type (read-only)

class EnumerationBuilder(handle: LP_BNTypeBuilder, enum_builder_handle: LP_BNEnumerationBuilder, platform: Platform | None = None, confidence: int = 255)[source]

Bases: TypeBuilder

Parameters:
  • handle (LP_BNTypeBuilder) –

  • enum_builder_handle (LP_BNEnumerationBuilder) –

  • platform (_platform.Platform | None) –

  • confidence (int) –

append(name: str, value: int | None = None) EnumerationBuilder[source]
Parameters:
  • name (str) –

  • value (int | None) –

Return type:

EnumerationBuilder

classmethod create(members: List[Tuple[str, int]] | List[str] | List[EnumerationMember] | None = None, width: int | None = None, arch: Architecture | None = None, sign: bool | BoolWithConfidence = False, platform: Platform | None = None, confidence: int = 255) EnumerationBuilder[source]
Parameters:
Return type:

EnumerationBuilder

immutable_copy() EnumerationType[source]
Return type:

EnumerationType

remove(i: int) EnumerationBuilder[source]
Parameters:

i (int) –

Return type:

EnumerationBuilder

replace(i: int, name: str, value: int) EnumerationBuilder[source]
Parameters:
Return type:

EnumerationBuilder

property members: List[EnumerationMember]

Enumeration member list (read-only)

class EnumerationMember(name: str, value: int | None = None)[source]

Bases: object

Parameters:
  • name (str) –

  • value (int | None) –

name: str
value: int | None = None
class EnumerationType(handle, platform: Platform | None = None, confidence: int = 255)[source]

Bases: IntegerType

Parameters:
  • platform (_platform.Platform | None) –

  • confidence (int) –

classmethod create(members: List[Tuple[str, int]] | List[str] | List[EnumerationMember], width: int | None = None, arch: Architecture | None = None, sign: bool | BoolWithConfidence = False, platform: Platform | None = None, confidence: int = 255) EnumerationType[source]
Parameters:
Return type:

EnumerationType

generate_named_type_reference(guid: str, name: Iterable[str | bytes] | str | QualifiedName)[source]
Parameters:
mutable_copy() EnumerationBuilder[source]
Return type:

EnumerationBuilder

property members

Enumeration member list (read-only)

class FloatBuilder(handle: LP_BNTypeBuilder, platform: Platform | None = None, confidence: int = 255)[source]

Bases: TypeBuilder

Parameters:
  • handle (LP_BNTypeBuilder) –

  • platform (_platform.Platform | None) –

  • confidence (int) –

classmethod create(width: int, alternate_name: str = '', platform: Platform | None = None, confidence: int = 255) FloatBuilder[source]
Parameters:
  • width (int) –

  • alternate_name (str) –

  • platform (Platform | None) –

  • confidence (int) –

Return type:

FloatBuilder

class FloatType(handle, platform: Platform | None = None, confidence: int = 255)[source]

Bases: Type

Parameters:
  • platform (_platform.Platform | None) –

  • confidence (int) –

classmethod create(width: int, altname: str = '', platform: Platform | None = None, confidence: int = 255) FloatType[source]

float class method for creating floating point Types.

Parameters:
  • width (int) – width of the floating point number in bytes

  • altname (str) – alternate name for type

  • platform (Platform | None) –

  • confidence (int) –

Return type:

FloatType

class FunctionBuilder(handle: LP_BNTypeBuilder, platform: Platform | None = None, confidence: int = 255)[source]

Bases: TypeBuilder

Parameters:
  • handle (LP_BNTypeBuilder) –

  • platform (_platform.Platform | None) –

  • confidence (int) –

append(type: TypeBuilder | Type | FunctionParameter, name: str = '')[source]
Parameters:
classmethod create(return_type: TypeBuilder | Type | None = None, calling_convention: CallingConvention | None = None, params: List[Type] | List[FunctionParameter] | List[Tuple[str, Type]] | None = None, var_args: bool | BoolWithConfidence | None = None, stack_adjust: int | OffsetWithConfidence | None = None, platform: _platform.Platform | None = None, confidence: int = 255, can_return: BoolWithConfidence | None = None, reg_stack_adjust: Dict[architecture.RegisterName, int | OffsetWithConfidence] | None = None, return_regs: RegisterSet | List[architecture.RegisterType] | None = None, name_type: NameType = NameType.NoNameType, pure: BoolWithConfidence | None = None) FunctionBuilder[source]
Parameters:
Return type:

FunctionBuilder

property calling_convention: CallingConvention
property can_return: BoolWithConfidence
property children: List[TypeBuilder]
property immutable_return_value: Type
property parameters: List[FunctionParameter]

Type parameters list (read-only)

property pure: BoolWithConfidence
property return_value: TypeBuilder
property stack_adjust: OffsetWithConfidence
property stack_adjustment: OffsetWithConfidence
property variable_arguments: BoolWithConfidence
class FunctionParameter(type: Union[ForwardRef('TypeBuilder'), ForwardRef('Type')], name: str = '', location: Optional[ForwardRef('variable.VariableNameAndType')] = None)[source]

Bases: object

Parameters:
immutable_copy() FunctionParameter[source]
Return type:

FunctionParameter

mutable_copy() FunctionParameter[source]
Return type:

FunctionParameter

location: VariableNameAndType | None = None
name: str = ''
type: TypeBuilder | Type
class FunctionType(handle, platform: Platform | None = None, confidence: int = 255)[source]

Bases: Type

Parameters:
  • platform (_platform.Platform | None) –

  • confidence (int) –

classmethod create(ret: Type | None = None, params: List[Type] | List[FunctionParameter] | List[Tuple[str, Type]] | None = None, calling_convention: CallingConvention | None = None, variable_arguments: bool | BoolWithConfidence = BoolWithConfidence(value=False, confidence=255), stack_adjust: OffsetWithConfidence = OffsetWithConfidence(value=0, confidence=255), platform: _platform.Platform | None = None, confidence: int = 255, can_return: BoolWithConfidence | bool = True, reg_stack_adjust: Dict[architecture.RegisterName, int | OffsetWithConfidence] | None = None, return_regs: RegisterSet | List[architecture.RegisterType] | None = None, name_type: NameType = NameType.NoNameType, pure: BoolWithConfidence | bool = False) FunctionType[source]
Parameters:
Return type:

FunctionType

property calling_convention: CallingConvention | None

Calling convention (read-only)

property can_return: BoolWithConfidence

Whether type can return

property children: List[Type]
property has_variable_arguments: BoolWithConfidence

Whether type has variable arguments (read-only)

property parameters: List[FunctionParameter]

Type parameters list (read-only)

property pure: BoolWithConfidence

Whether type is pure

property return_value: Type

Return value (read-only)

property stack_adjustment: OffsetWithConfidence

Stack adjustment for function (read-only)

class InheritedStructureMember(base: 'NamedTypeReferenceType', base_offset: int, member: StructureMember, member_index: int)[source]

Bases: object

Parameters:
base: NamedTypeReferenceType
base_offset: int
member: StructureMember
member_index: int
class IntegerBuilder(handle: LP_BNTypeBuilder, platform: Platform | None = None, confidence: int = 255)[source]

Bases: TypeBuilder

Parameters:
  • handle (LP_BNTypeBuilder) –

  • platform (_platform.Platform | None) –

  • confidence (int) –

classmethod create(width: int, sign: bool | BoolWithConfidence = True, alternate_name: str = '', platform: Platform | None = None, confidence: int = 255) IntegerBuilder[source]
Parameters:
Return type:

IntegerBuilder

class IntegerType(handle, platform: Platform | None = None, confidence: int = 255)[source]

Bases: Type

Parameters:
  • platform (_platform.Platform | None) –

  • confidence (int) –

classmethod create(width: int, sign: bool | BoolWithConfidence = True, alternate_name: str = '', platform: Platform | None = None, confidence: int = 255) IntegerType[source]
Parameters:
Return type:

IntegerType

property signed: BoolWithConfidence

Whether type is signed (read-only)

class MutableTypeBuilder(type: TB, container: Union[ForwardRef('binaryview.BinaryView'), ForwardRef('typelibrary.TypeLibrary')], name: QualifiedName, platform: Optional[ForwardRef('_platform.Platform')], confidence: int, user: bool = True)[source]

Bases: Generic[TB]

Parameters:
confidence: int
container: BinaryView | TypeLibrary
name: QualifiedName
platform: Platform | None
type: TB
user: bool = True
class NameSpace(name: Iterable[str | bytes] | str | QualifiedName | None = None)[source]

Bases: QualifiedName

Parameters:

name (Iterable[str | bytes] | str | QualifiedName | None) –

static get_core_struct(name: str | List[str] | NameSpace | None) BNNameSpace | None[source]
Parameters:

name (str | List[str] | NameSpace | None) –

Return type:

BNNameSpace | None

class NamedTypeReferenceBuilder(handle: LP_BNTypeBuilder, ntr_builder_handle: LP_BNNamedTypeReferenceBuilder, platform: Platform | None = None, confidence: int = 255)[source]

Bases: TypeBuilder

Parameters:
  • handle (LP_BNTypeBuilder) –

  • ntr_builder_handle (LP_BNNamedTypeReferenceBuilder) –

  • platform (_platform.Platform | None) –

  • confidence (int) –

classmethod create(type_class: NamedTypeReferenceClass = NamedTypeReferenceClass.UnknownNamedTypeClass, type_id: str | None = None, name: Iterable[str | bytes] | str | QualifiedName = '', width: int = 0, align: int = 1, platform: Platform | None = None, confidence: int = 255, const: bool | BoolWithConfidence = False, volatile: bool | BoolWithConfidence = False) NamedTypeReferenceBuilder[source]
Parameters:
Return type:

NamedTypeReferenceBuilder

immutable_copy() NamedTypeReferenceType[source]
Return type:

NamedTypeReferenceType

static named_type(named_type: NamedTypeReferenceBuilder, width: int = 0, align: int = 1, const: bool | BoolWithConfidence = BoolWithConfidence(value=False, confidence=255), volatile: bool | BoolWithConfidence = BoolWithConfidence(value=False, confidence=255)) NamedTypeReferenceBuilder[source]
Parameters:
Return type:

NamedTypeReferenceBuilder

static named_type_from_registered_type(view: BinaryView, name: Iterable[str | bytes] | str | QualifiedName) NamedTypeReferenceBuilder[source]
Parameters:
Return type:

NamedTypeReferenceBuilder

static named_type_from_type(name: Iterable[str | bytes] | str | QualifiedName, type_class: NamedTypeReferenceClass | None = None) NamedTypeReferenceBuilder[source]
Parameters:
Return type:

NamedTypeReferenceBuilder

static named_type_from_type_and_id(type_id: str, name: Iterable[str | bytes] | str | QualifiedName, type: Type | None = None) NamedTypeReferenceBuilder[source]
Parameters:
Return type:

NamedTypeReferenceBuilder

property id: str
property name: QualifiedName
property named_type_class: NamedTypeReferenceClass
property type_id: str
class NamedTypeReferenceType(handle, platform: Platform | None = None, confidence: int = 255, ntr_handle=None)[source]

Bases: Type

Parameters:
  • platform (_platform.Platform | None) –

  • confidence (int) –

classmethod create(named_type_class: NamedTypeReferenceClass, guid: str | None, name: Iterable[str | bytes] | str | QualifiedName, alignment: int = 0, width: int = 0, platform: Platform | None = None, confidence: int = 255, const: bool | BoolWithConfidence = False, volatile: bool | BoolWithConfidence = False) NamedTypeReferenceType[source]
Parameters:
Return type:

NamedTypeReferenceType

classmethod create_from_handle(ntr_handle, alignment: int = 0, width: int = 0, platform: Platform | None = None, confidence: int = 255, const: bool | BoolWithConfidence = False, volatile: bool | BoolWithConfidence = False)[source]

Create a NamedTypeReferenceType from a BNNamedTypeReference handle

Parameters:
classmethod create_from_registered_type(view: BinaryView, name: Iterable[str | bytes] | str | QualifiedName, platform: Platform | None = None, confidence: int = 255) NamedTypeReferenceType[source]
Parameters:
Return type:

NamedTypeReferenceType

classmethod create_from_type(name: Iterable[str | bytes] | str | QualifiedName, type: Type | None, guid: str | None = None, platform: Platform | None = None, confidence: int = 255, const: bool | BoolWithConfidence = False, volatile: bool | BoolWithConfidence = False) NamedTypeReferenceType[source]
Parameters:
Return type:

NamedTypeReferenceType

static generate_auto_demangled_type_ref(type_class: NamedTypeReferenceClass, name: Iterable[str | bytes] | str | QualifiedName)[source]
Parameters:
static generate_auto_type_ref(type_class: NamedTypeReferenceClass, source: str, name: Iterable[str | bytes] | str | QualifiedName)[source]
Parameters:
mutable_copy()[source]
target(bv: BinaryView) Type | None[source]

Returns the type pointed to by the current type

Parameters:

bv (BinaryView) – The BinaryView in which this type is defined.

Returns:

The type this NamedTypeReference is referencing

Return type:

Optional[Type]

property name: QualifiedName
property named_type_class: NamedTypeReferenceClass
property type_id: str
class OffsetWithConfidence(value: int, confidence: int = 255)[source]

Bases: object

Parameters:
  • value (int) –

  • confidence (int) –

classmethod from_core_struct(core_struct: BNOffsetWithConfidence) OffsetWithConfidence[source]
Parameters:

core_struct (BNOffsetWithConfidence) –

Return type:

OffsetWithConfidence

static get_core_struct(value: int | OffsetWithConfidence, confidence: int = 255) BNOffsetWithConfidence[source]
Parameters:
Return type:

BNOffsetWithConfidence

confidence: int = 255
value: int
class PointerBuilder(handle: LP_BNTypeBuilder, platform: Platform | None = None, confidence: int = 255)[source]

Bases: TypeBuilder

Parameters:
  • handle (LP_BNTypeBuilder) –

  • platform (_platform.Platform | None) –

  • confidence (int) –

classmethod create(type: Type, width: int = 4, arch: Architecture | None = None, const: bool | BoolWithConfidence = False, volatile: bool | BoolWithConfidence = False, ref_type: ReferenceType = ReferenceType.PointerReferenceType, platform: Platform | None = None, confidence: int = 255) PointerBuilder[source]
Parameters:
Return type:

PointerBuilder

property children: List[TypeBuilder]
property immutable_target: Type
property offset: int
property origin: Tuple[QualifiedName, int] | None
property target: TypeBuilder
class PointerType(handle, platform: Platform | None = None, confidence: int = 255)[source]

Bases: Type

Parameters:
  • platform (_platform.Platform | None) –

  • confidence (int) –

classmethod create(arch: Architecture, type: TypeBuilder | Type, const: bool | BoolWithConfidence = False, volatile: bool | BoolWithConfidence = False, ref_type: ReferenceType = ReferenceType.PointerReferenceType, platform: Platform | None = None, confidence: int = 255) PointerType[source]
Parameters:
Return type:

PointerType

classmethod create_with_width(width: int, type: TypeBuilder | Type, const: bool | BoolWithConfidence = False, volatile: bool | BoolWithConfidence = False, ref_type: ReferenceType | None = None, platform: Platform | None = None, confidence: int = 255) PointerType[source]
Parameters:
Return type:

PointerType

static from_bools(const: bool | BoolWithConfidence, volatile: bool | BoolWithConfidence) Tuple[BoolWithConfidence, BoolWithConfidence][source]
Parameters:
Return type:

Tuple[BoolWithConfidence, BoolWithConfidence]

origin(bv: BinaryView | None) Tuple[QualifiedName, int] | None[source]
Parameters:

bv (BinaryView | None) –

Return type:

Tuple[QualifiedName, int] | None

property children: List[Type]
property ref_type: ReferenceType
property target: Type

Target (read-only)

class QualifiedName(name: Iterable[str | bytes] | str | QualifiedName | None = None)[source]

Bases: object

Parameters:

name (Iterable[str | bytes] | str | QualifiedName | None) –

static escape(name: Iterable[str | bytes] | str | QualifiedName, escaping: TokenEscapingType) str[source]
Parameters:
Return type:

str

static unescape(name: Iterable[str | bytes] | str | QualifiedName, escaping: TokenEscapingType) str[source]
Parameters:
Return type:

str

property name: List[str]
class RegisterSet(regs: List[ForwardRef('architecture.RegisterName')], confidence: int = 255)[source]

Bases: object

Parameters:
  • regs (List[RegisterName]) –

  • confidence (int) –

with_confidence(confidence)[source]
confidence: int = 255
regs: List[RegisterName]
class RegisterStackAdjustmentWithConfidence(value: int, confidence: int = 255)[source]

Bases: object

Parameters:
  • value (int) –

  • confidence (int) –

confidence: int = 255
value: int
class StructureBuilder(handle: LP_BNTypeBuilder, builder_handle: LP_BNStructureBuilder, platform: Platform | None = None, confidence: int = 255)[source]

Bases: TypeBuilder

Parameters:
  • handle (LP_BNTypeBuilder) –

  • builder_handle (LP_BNStructureBuilder) –

  • platform (_platform.Platform | None) –

  • confidence (int) –

add_member_at_offset(name: str, type: TypeBuilder | Type, offset: int, overwrite_existing: bool = True, access: MemberAccess = MemberAccess.NoAccess, scope: MemberScope = MemberScope.NoScope) StructureBuilder[source]
Parameters:
Return type:

StructureBuilder

append(type: TypeBuilder | Type, name: str = '', access: MemberAccess = MemberAccess.NoAccess, scope: MemberScope = MemberScope.NoScope) StructureBuilder[source]
Parameters:
Return type:

StructureBuilder

classmethod create(members: List[StructureMember] | List[Type] | List[Tuple[Type, str]] | None = None, type: StructureVariant = StructureVariant.StructStructureType, packed: bool = False, width: int | None = None, platform: Platform | None = None, confidence: int = 255) StructureBuilder[source]
Parameters:
Return type:

StructureBuilder

immutable_copy() StructureType[source]
Return type:

StructureType

index_by_name(name: str) int | None[source]
Parameters:

name (str) –

Return type:

int | None

index_by_offset(offset: int) int | None[source]
Parameters:

offset (int) –

Return type:

int | None

insert(offset: int, type: TypeBuilder | Type, name: str = '', overwrite_existing: bool = True, access: MemberAccess = MemberAccess.NoAccess, scope: MemberScope = MemberScope.NoScope)[source]
Parameters:
member_at_offset(offset: int) StructureMember | None[source]
Parameters:

offset (int) –

Return type:

StructureMember | None

remove(index: int)[source]
Parameters:

index (int) –

replace(index: int, type: TypeBuilder | Type, name: str = '', overwrite_existing: bool = True)[source]
Parameters:
property alignment: int
property base_structures: List[BaseStructure]

Base structure list. Offsets that are not defined by this structure will be filled in by the fields of the base structure(s).

property children: List[TypeBuilder]
property members: List[StructureMember]

Structure member list (read-only)

property packed: bool
property pointer_offset: int
property propagate_data_var_refs: bool
property type: StructureVariant
property union: bool
property width: int
class StructureMember(type: 'Type', name: str, offset: int, access: binaryninja.enums.MemberAccess = <MemberAccess.NoAccess: 0>, scope: binaryninja.enums.MemberScope = <MemberScope.NoScope: 0>)[source]

Bases: object

Parameters:
access: MemberAccess = 0
name: str
offset: int
scope: MemberScope = 0
type: Type
class StructureType(handle, platform: Platform | None = None, confidence: int = 255)[source]

Bases: Type

Parameters:
  • platform (_platform.Platform | None) –

  • confidence (int) –

classmethod create(members: List[StructureMember] | List[Type] | List[Tuple[Type, str]] | None = None, packed: bool = False, type: StructureVariant = StructureVariant.StructStructureType, platform: Platform | None = None, confidence: int = 255) StructureType[source]
Parameters:
Return type:

StructureType

classmethod from_core_struct(structure: BNStructure) StructureType[source]
Parameters:

structure (BNStructure) –

Return type:

StructureType

generate_named_type_reference(guid: str, name: Iterable[str | bytes] | str | QualifiedName)[source]
Parameters:
member_at_offset(offset: int) StructureMember[source]
Parameters:

offset (int) –

Return type:

StructureMember

member_at_offset_including_inherited(view: BinaryView, offset: int) InheritedStructureMember[source]

Returns the member (including inherited member at the specified offset

Parameters:
Return type:

InheritedStructureMember

members_including_inherited(view: BinaryView | TypeContainer) List[InheritedStructureMember][source]

Returns structure member list, including those inherited by base structures

Parameters:

view (BinaryView | TypeContainer) –

Return type:

List[InheritedStructureMember]

mutable_copy() StructureBuilder[source]
Return type:

StructureBuilder

with_replaced_enumeration(from_enum, to_enum) StructureType[source]
Return type:

StructureType

with_replaced_named_type_reference(from_ref, to_ref) StructureType[source]
Return type:

StructureType

with_replaced_structure(from_struct, to_struct) StructureType[source]
Return type:

StructureType

property alignment

Structure alignment

property base_structures: List[BaseStructure]

Base structure list (read-only). Offsets that are not defined by this structure will be filled in by the fields of the base structure(s).

property children: List[Type]
property members

Structure member list (read-only)

property packed
property pointer_offset

Structure pointer offset. Pointers to this structure will implicitly have this offset subtracted from the pointer to arrive at the start of the structure. Effectively, the pointer offset becomes the new start of the structure, and fields before it are accessed using negative offsets from the pointer.

property propagate_data_var_refs: bool

Whether structure field references propagate the references to data variable field values

property type: StructureVariant
property width

Structure width

class Symbol(sym_type, addr, short_name, full_name=None, raw_name=None, binding=None, namespace=None, ordinal=0)[source]

Bases: CoreSymbol

Symbols are defined as one of the following types:

SymbolType

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

class Type(handle, platform: Platform | None = None, confidence: int = 255)[source]

Bases: object

class Type allows you to interact with the Binary Ninja type system. Note that the repr and str handlers respond differently on type objects.

Other related functions that may be helpful include:

parse_type_string parse_types_from_source parse_types_from_source_file

Parameters:
  • platform (_platform.Platform | None) –

  • confidence (int) –

static array(type: Type, count: int) ArrayType[source]
Parameters:
Return type:

ArrayType

static bool() BoolType[source]
Return type:

BoolType

static builder(bv: BinaryView, name: QualifiedName | None = None, id: str | None = None, platform: Platform | None = None, confidence: int = 255) MutableTypeBuilder[source]
Parameters:
Return type:

MutableTypeBuilder

static char(alternate_name: str = '') CharType[source]
Parameters:

alternate_name (str) –

Return type:

CharType

static class_type(members: List[StructureMember] | List[Type] | List[Tuple[Type, str]] | None = None, packed: bool = False) StructureType[source]
Parameters:
Return type:

StructureType

classmethod create(handle=<class 'binaryninja._binaryninjacore.LP_BNType'>, platform: ~binaryninja.platform.Platform | None = None, confidence: int = 255) Type[source]
Parameters:
Return type:

Type

static enumeration(arch: Architecture | None = None, members: List[Tuple[str, int]] | List[str] | List[EnumerationMember] | None = None, width: int | None = None, sign: bool | BoolWithConfidence = False) EnumerationType[source]
Parameters:
Return type:

EnumerationType

static enumeration_type(arch, enum: EnumerationBuilder, width: int | None = None, sign: bool = False) EnumerationType[source]
Parameters:
Return type:

EnumerationType

static float(width: int, alternate_name: str = '') FloatType[source]

float class method for creating floating point Types.

Parameters:
  • width (int) – width of the floating point number in bytes

  • alternate_name (str) – alternate name for type

Return type:

FloatType

static from_core_struct(core_type: BNType)[source]
Parameters:

core_type (BNType) –

static function(ret: Type | None = None, params: List[Type] | List[FunctionParameter] | List[Tuple[str, Type]] | None = None, calling_convention: CallingConvention | None = None, variable_arguments: bool | BoolWithConfidence = False, stack_adjust: OffsetWithConfidence = OffsetWithConfidence(value=0, confidence=255)) FunctionType[source]

function class method for creating a function Type.

Parameters:
  • ret (Type) – return Type of the function

  • params (list(Type)) – list of parameter Types

  • calling_convention (CallingConvention) – optional argument for the function calling convention

  • variable_arguments (bool) – optional boolean, true if the function has a variable number of arguments

  • stack_adjust (OffsetWithConfidence) –

Return type:

FunctionType

static generate_auto_demangled_type_id(name: Iterable[str | bytes] | str | QualifiedName) str[source]
Parameters:

name (Iterable[str | bytes] | str | QualifiedName) –

Return type:

str

static generate_auto_type_id(source: str, name: Iterable[str | bytes] | str | QualifiedName) str[source]
Parameters:
Return type:

str

static generate_named_type_reference(guid: str, name: Iterable[str | bytes] | str | QualifiedName) NamedTypeReferenceType[source]
Parameters:
Return type:

NamedTypeReferenceType

static get_auto_demangled_type_id_source() str[source]
Return type:

str

get_builder(bv: BinaryView) MutableTypeBuilder[source]
Parameters:

bv (BinaryView) –

Return type:

MutableTypeBuilder

get_lines(bv: BinaryView | TypeContainer, name: str, line_width: int = 80, collapsed: bool = False, escaping: TokenEscapingType = TokenEscapingType.NoTokenEscapingType) List[TypeDefinitionLine][source]

Get a list of TypeDefinitionLine structures for representing a Type in a structured form. This structure uses the same logic as Types View and will expand structures and enumerations unless collapsed is set.

Parameters:
  • bv (BinaryView) – BinaryView object owning this Type

  • name (str) – Displayed name of the Type

  • line_width (int) – Maximum width of lines (in characters)

  • collapsed (bool) – If the type should be collapsed, and not show fields/members

  • escaping (TokenEscapingType) – How to escape non-parsable strings in types

Returns:

Returns a list of TypeDefinitionLine structures

Return type:

TypeDefinitionLine

get_string(escaping: TokenEscapingType = TokenEscapingType.NoTokenEscapingType) str[source]

Get string representation for this type

Parameters:

escaping (TokenEscapingType) – How to escape non-parsable strings in types

Returns:

String for type

Return type:

str

Example:
>>> Type.array(Type.int(4), 10).get_string()
'int32_t[0xa]'
get_string_after_name(escaping: TokenEscapingType = TokenEscapingType.NoTokenEscapingType) str[source]

Get the string to be printed after this type’s name in a representation

Parameters:

escaping (TokenEscapingType) – How to escape non-parsable strings in types

Returns:

String for type representation after the name

Return type:

str

Example:
>>> Type.array(Type.int(4), 10).get_string()
'int32_t[0xa]'
>>> Type.array(Type.int(4), 10).get_string_after_name()
'[0xa]'
get_string_before_name(escaping: TokenEscapingType = TokenEscapingType.NoTokenEscapingType) str[source]

Get the string to be printed before this type’s name in a representation of it

Parameters:

escaping (TokenEscapingType) – How to escape non-parsable strings in types

Returns:

String for type representation before the name

Return type:

str

Example:
>>> Type.array(Type.int(4), 10).get_string()
'int32_t[0xa]'
>>> Type.array(Type.int(4), 10).get_string_before_name()
'int32_t'
get_tokens(base_confidence=255, escaping: TokenEscapingType = TokenEscapingType.NoTokenEscapingType) List[InstructionTextToken][source]

Get a list of tokens for the definition of a type

Parameters:
  • base_confidence (int) – Confidence of this type

  • escaping (TokenEscapingType) – How to escape non-parsable strings in types

Returns:

List of tokens

Return type:

List[_function.InstructionTextToken]

Example:
>>> Type.array(Type.int(4), 10).get_string()
'int32_t[0xa]'
>>> Type.array(Type.int(4), 10).get_tokens()
['int32_t', ' ', '[', '0xa', ']']
get_tokens_after_name(base_confidence=255, escaping: TokenEscapingType = TokenEscapingType.NoTokenEscapingType) List[InstructionTextToken][source]

Get a list of tokens for the definition of a type that are placed after the type name

Parameters:
  • base_confidence (int) – Confidence of this type

  • escaping (TokenEscapingType) – How to escape non-parsable strings in types

Returns:

List of tokens

Return type:

List[_function.InstructionTextToken]

Example:
>>> Type.array(Type.int(4), 10).get_string()
'int32_t[0xa]'
>>> Type.array(Type.int(4), 10).get_tokens_after_name()
['[', '0xa', ']']
get_tokens_before_name(base_confidence=255, escaping: TokenEscapingType = TokenEscapingType.NoTokenEscapingType) List[InstructionTextToken][source]

Get a list of tokens for the definition of a type that are placed before the type name

Parameters:
  • base_confidence (int) – Confidence of this type

  • escaping (TokenEscapingType) – How to escape non-parsable strings in types

Returns:

List of tokens

Return type:

List[_function.InstructionTextToken]

Example:
>>> Type.array(Type.int(4), 10).get_string()
'int32_t[0xa]'
>>> Type.array(Type.int(4), 10).get_tokens_before_name()
['int32_t']
immutable_copy() Type[source]
Return type:

Type

static int(width: int, sign: bool | BoolWithConfidence = True, alternate_name: str = '') IntegerType[source]

int class method for creating an int Type.

Parameters:
  • width (int) – width of the integer in bytes

  • sign (bool) – optional variable representing signedness

  • alternate_name (str) – alternate name for type

Return type:

IntegerType

mutable_copy() TypeBuilder[source]
Return type:

TypeBuilder

static named_type(named_type: NamedTypeReferenceBuilder) NamedTypeReferenceType[source]
Parameters:

named_type (NamedTypeReferenceBuilder) –

Return type:

NamedTypeReferenceType

static named_type_from_registered_type(view: BinaryView, name: Iterable[str | bytes] | str | QualifiedName) NamedTypeReferenceType[source]
Parameters:
Return type:

NamedTypeReferenceType

static named_type_from_type(name: Iterable[str | bytes] | str | QualifiedName, type: Type) NamedTypeReferenceType[source]
Parameters:
Return type:

NamedTypeReferenceType

static named_type_from_type_and_id(type_id: str, name: Iterable[str | bytes] | str | QualifiedName, type: Type | None = None) NamedTypeReferenceType[source]
Parameters:
Return type:

NamedTypeReferenceType

static named_type_reference(type_class: NamedTypeReferenceClass, name: Iterable[str | bytes] | str | QualifiedName, type_id: str | None = None, alignment: int = 1, width: int = 0, const: bool | BoolWithConfidence = BoolWithConfidence(value=False, confidence=255), volatile: bool | BoolWithConfidence = BoolWithConfidence(value=False, confidence=255))[source]
Parameters:
static pointer(arch: Architecture, type: Type, const: bool | BoolWithConfidence = BoolWithConfidence(value=False, confidence=255), volatile: bool | BoolWithConfidence = BoolWithConfidence(value=False, confidence=255), ref_type: ReferenceType = ReferenceType.PointerReferenceType, width: int | None = None) PointerType[source]
Parameters:
Return type:

PointerType

static pointer_of_width(width: int, type: Type, const: bool | BoolWithConfidence = False, volatile: bool | BoolWithConfidence = False, ref_type: ReferenceType = ReferenceType.PointerReferenceType) PointerType[source]
Parameters:
Return type:

PointerType

static structure(members: List[StructureMember] | List[Type] | List[Tuple[Type, str]] | None = None, packed: bool = False, type: StructureVariant = StructureVariant.StructStructureType) StructureType[source]
Parameters:
Return type:

StructureType

static structure_type(structure: StructureBuilder) StructureType[source]
Parameters:

structure (StructureBuilder) –

Return type:

StructureType

static union(members: List[StructureMember] | List[Type] | List[Tuple[Type, str]] | None = None, packed: bool = False) StructureType[source]
Parameters:
Return type:

StructureType

static void() VoidType[source]
Return type:

VoidType

static wide_char(width: int, alternate_name: str = '') WideCharType[source]

wide_char class method for creating wide char Types.

Parameters:
  • width (int) – width of the wide character in bytes

  • alternate_name (str) – alternate name for type

Return type:

WideCharType

with_confidence(confidence: int) Type[source]
Parameters:

confidence (int) –

Return type:

Type

with_replaced_enumeration(from_enum: EnumerationType, to_enum: EnumerationType)[source]
Parameters:
with_replaced_named_type_reference(from_ref: NamedTypeReferenceType, to_ref: NamedTypeReferenceType)[source]
Parameters:
with_replaced_structure(from_struct: StructureType, to_struct: StructureType)[source]
Parameters:
property alignment: int

Type alignment (read-only)

property altname: str

Alternative name for the type object

property children: List[Type]
property confidence: int
property const

Whether type is const (read/write)

property handle
property name: QualifiedName
property offset: int

Offset into structure (read-only)

property platform: Platform | None
property registered_name: NamedTypeReferenceType | None

Name of type registered to binary view, if any (read-only)

property system_call_number: int | None

Returns the system call number for a FunctionType object if one exists otherwise None

property tokens: List[InstructionTextToken]

Type string as a list of tokens (read-only)

property type_class: TypeClass

Type class (read-only)

property volatile

Whether type is volatile (read/write)

property width: int

Type width (read-only)

class TypeBuilder(handle: LP_BNTypeBuilder, platform: Platform | None = None, confidence: int = 255)[source]

Bases: object

All TypeBuilder objects should not be instantiated directly but created via .create APIs.

Parameters:
  • handle (LP_BNTypeBuilder) –

  • platform (_platform.Platform | None) –

  • confidence (int) –

static array(type: Type, count: int) ArrayBuilder[source]
Parameters:
Return type:

ArrayBuilder

static bool() BoolBuilder[source]
Return type:

BoolBuilder

classmethod builder(container: BinaryView | TypeLibrary, name: QualifiedName, user: bool = True, platform: Platform | None = None, confidence: int = 255) MutableTypeBuilder[TB][source]
Parameters:
Return type:

MutableTypeBuilder[TB]

static char(alternate_name: str = '') CharBuilder[source]
Parameters:

alternate_name (str) –

Return type:

CharBuilder

static class_type(members: List[StructureMember] | List[Type] | List[Tuple[Type, str]] | None = None, packed: bool = False) StructureBuilder[source]
Parameters:
Return type:

StructureBuilder

clear_system_call() None[source]
Return type:

None

classmethod create()[source]
static enumeration(arch: Architecture | None = None, members: List[Tuple[str, int]] | List[str] | List[EnumerationMember] | None = None, width: int | None = None, sign: bool | BoolWithConfidence = BoolWithConfidence(value=False, confidence=255)) EnumerationBuilder[source]
Parameters:
Return type:

EnumerationBuilder

static float(width: int, altname: str = '') FloatBuilder[source]

float class method for creating floating point Types.

Parameters:
  • width (int) – width of the floating point number in bytes

  • altname (str) – alternate name for type

Return type:

FloatBuilder

static function(ret: Type | None = None, params: List[Type] | List[FunctionParameter] | List[Tuple[str, Type]] | None = None, calling_convention: CallingConvention | None = None, variable_arguments: bool | BoolWithConfidence | None = None, stack_adjust: int | OffsetWithConfidence | None = None) FunctionBuilder[source]

function class method for creating a function Type.

Parameters:
  • ret (Type) – return Type of the function

  • params (list(Type)) – list of parameter Types

  • calling_convention (CallingConvention) – optional argument for the function calling convention

  • variable_arguments (bool) – optional boolean, true if the function has a variable number of arguments

  • stack_adjust (int | OffsetWithConfidence | None) –

Return type:

FunctionBuilder

immutable_copy()[source]
static int(width: int, sign: bool | BoolWithConfidence = BoolWithConfidence(value=True, confidence=255), altname: str = '') IntegerBuilder[source]

int class method for creating an int Type.

Parameters:
  • width (int) – width of the integer in bytes

  • sign (bool) – optional variable representing signedness

  • altname (str) – alternate name for type

Return type:

IntegerBuilder

mutable_copy() TypeBuilder[source]
Return type:

TypeBuilder

static named_type_from_registered_type(view: BinaryView, name: QualifiedName) NamedTypeReferenceBuilder[source]
Parameters:
Return type:

NamedTypeReferenceBuilder

static named_type_from_type(name: Iterable[str | bytes] | str | QualifiedName, type_class: NamedTypeReferenceClass | None = None) NamedTypeReferenceBuilder[source]
Parameters:
Return type:

NamedTypeReferenceBuilder

static named_type_from_type_and_id(type_id: str, name: Iterable[str | bytes] | str | QualifiedName, type: Type | None = None) NamedTypeReferenceBuilder[source]
Parameters:
Return type:

NamedTypeReferenceBuilder

static named_type_reference(type_class: NamedTypeReferenceClass, name: QualifiedName, type_id: str | None = None, alignment: int = 1, width: int = 0, const: bool | BoolWithConfidence = BoolWithConfidence(value=False, confidence=255), volatile: bool | BoolWithConfidence = BoolWithConfidence(value=False, confidence=255)) NamedTypeReferenceBuilder[source]
Parameters:
Return type:

NamedTypeReferenceBuilder

static pointer(arch: Architecture, type: Type, const: bool | BoolWithConfidence = BoolWithConfidence(value=False, confidence=255), volatile: bool | BoolWithConfidence = BoolWithConfidence(value=False, confidence=255), ref_type: ReferenceType = ReferenceType.PointerReferenceType) PointerBuilder[source]
Parameters:
Return type:

PointerBuilder

static pointer_of_width(width: int, type: Type, const: bool | BoolWithConfidence = BoolWithConfidence(value=False, confidence=255), volatile: bool | BoolWithConfidence = BoolWithConfidence(value=False, confidence=255), ref_type: ReferenceType = ReferenceType.PointerReferenceType) PointerBuilder[source]
Parameters:
Return type:

PointerBuilder

static structure(members: List[StructureMember] | List[Type] | List[Tuple[Type, str]] | None = None, packed: bool = False, type: StructureVariant = StructureVariant.StructStructureType) StructureBuilder[source]
Parameters:
Return type:

StructureBuilder

static union(members: List[StructureMember] | List[Type] | List[Tuple[Type, str]] | None = None, packed: bool = False) StructureBuilder[source]
Parameters:
Return type:

StructureBuilder

static void() VoidBuilder[source]
Return type:

VoidBuilder

static wide_char(width: int, altname: str = '') WideCharBuilder[source]

wide_char class method for creating wide char Types.

Parameters:
  • width (int) – width of the wide character in bytes

  • altname (str) – alternate name for type

Return type:

WideCharBuilder

property alignment: int
property alternate_name: str | None
property child: Type
property children: List[TypeBuilder]
property const: BoolWithConfidence

Whether type is const (read/write)

property finalized
property handle: LP_BNType
property signed: BoolWithConfidence
property system_call_number: int | None

Gets/Sets the system call number for a FunctionType object if one exists otherwise None

property type_class: TypeClass
property volatile: BoolWithConfidence

Whether type is volatile (read/write)

property width: int
class TypeDefinitionLine(line_type: TypeDefinitionLineType, tokens: List[ForwardRef('_function.InstructionTextToken')], type: 'Type', parent_type: 'Type', root_type: 'Type', root_type_name: str, base_type: Optional[ForwardRef('NamedTypeReferenceType')], base_offset: int, offset: int, field_index: int)[source]

Bases: object

Parameters:
base_offset: int
base_type: NamedTypeReferenceType | None
field_index: int
line_type: TypeDefinitionLineType
offset: int
parent_type: Type
root_type: Type
root_type_name: str
tokens: List[InstructionTextToken]
type: Type
class TypeFieldReference(func: Optional[ForwardRef('_function.Function')], arch: Optional[ForwardRef('architecture.Architecture')], address: int, size: int, incomingType: Type | None)[source]

Bases: object

Parameters:
address: int
arch: Architecture | None
func: Function | None
incomingType: Type | None
size: int
class TypeReferenceSource(name: QualifiedName, offset: int, ref_type: TypeReferenceType)[source]

Bases: object

Parameters:
name: QualifiedName
offset: int
ref_type: TypeReferenceType
class VoidBuilder(handle: LP_BNTypeBuilder, platform: Platform | None = None, confidence: int = 255)[source]

Bases: TypeBuilder

Parameters:
  • handle (LP_BNTypeBuilder) –

  • platform (_platform.Platform | None) –

  • confidence (int) –

classmethod create(platform: Platform | None = None, confidence: int = 255) VoidBuilder[source]
Parameters:
Return type:

VoidBuilder

class VoidType(handle, platform: Platform | None = None, confidence: int = 255)[source]

Bases: Type

Parameters:
  • platform (_platform.Platform | None) –

  • confidence (int) –

classmethod create(platform: Platform | None = None, confidence: int = 255) VoidType[source]
Parameters:
Return type:

VoidType

class WideCharBuilder(handle: LP_BNTypeBuilder, platform: Platform | None = None, confidence: int = 255)[source]

Bases: TypeBuilder

Parameters:
  • handle (LP_BNTypeBuilder) –

  • platform (_platform.Platform | None) –

  • confidence (int) –

classmethod create(width: int, alternate_name: str = '', platform: Platform | None = None, confidence: int = 255) WideCharBuilder[source]
Parameters:
  • width (int) –

  • alternate_name (str) –

  • platform (Platform | None) –

  • confidence (int) –

Return type:

WideCharBuilder

class WideCharType(handle, platform: Platform | None = None, confidence: int = 255)[source]

Bases: Type

Parameters:
  • platform (_platform.Platform | None) –

  • confidence (int) –

classmethod create(width: int, alternate_name: str = '', platform: Platform | None = None, confidence: int = 255) WideCharType[source]

wide_char class method for creating wide char Types.

Parameters:
  • width (int) – width of the wide character in bytes

  • alternate_name (str) – alternate name for type

  • platform (Platform | None) –

  • confidence (int) –

Return type:

WideCharType

convert_integer(value: c_ulong, signed: bool, width: int) int[source]
Parameters:
Return type:

int