function module¶
-
class
binaryninja.function.
AdvancedFunctionAnalysisDataRequestor
(func=None)[source]¶ Bases:
object
-
function
¶
-
-
class
binaryninja.function.
DisassemblySettings
(handle=None)[source]¶ Bases:
object
-
max_symbol_width
¶
-
width
¶
-
-
class
binaryninja.function.
Function
(view, handle)[source]¶ Bases:
object
-
analysis_performance_info
¶
-
analysis_skip_override
¶ Override for skipping of automatic analysis
-
analysis_skip_reason
¶ Function analysis skip reason
-
analysis_skipped
¶ Whether automatic analysis was skipped for this function
-
arch
¶ Function architecture (read-only)
-
auto
¶ Whether function was automatically discovered (read-only)
-
basic_blocks
¶ List of basic blocks (read-only)
-
calling_convention
¶ Calling convention used by the function
-
can_return
¶ Whether function can return
-
clobbered_regs
¶ Registers that are modified by this function
-
comment
¶ Gets the comment for the current function
-
comments
¶ Dict of comments (read-only)
-
explicitly_defined_type
¶ Whether function has explicitly defined types (read-only)
-
function_type
¶ Function type object
-
get_basic_block_at
(addr, arch=None)[source]¶ get_basic_block_at
returns the BasicBlock of the optionally specified Architecturearch
at the given addressaddr
.Parameters: - addr (int) – Address of the BasicBlock to retrieve.
- arch (Architecture) – (optional) Architecture of the basic block if different from the Function’s self.arch
Example: >>> current_function.get_basic_block_at(current_function.start) <block: x86_64@0x100000f30-0x100000f50>
-
get_instr_highlight
(addr, arch=None)[source]¶ Example: >>> current_function.set_user_instr_highlight(here, highlight.HighlightColor(red=0xff, blue=0xff, green=0)) >>> current_function.get_instr_highlight(here) <color: #ff00ff>
-
get_low_level_il_at
(addr, arch=None)[source]¶ get_low_level_il_at
gets the LowLevelILInstruction corresponding to the given virtual addressParameters: - addr (int) – virtual address of the function to be queried
- arch (Architecture) – (optional) Architecture for the given function
Return type: Example: >>> func = bv.functions[0] >>> func.get_low_level_il_at(func.start) <il: push(rbp)>
-
get_reg_value_after
(addr, reg, arch=None)[source]¶ get_reg_value_after
gets the value instruction address corresponding to the given virtual addressParameters: - addr (int) – virtual address of the instruction to query
- reg (str) – string value of native register to query
- arch (Architecture) – (optional) Architecture for the given function
Return type: Example: >>> func.get_reg_value_after(0x400dbe, 'rdi') <undetermined>
-
get_reg_value_at
(addr, reg, arch=None)[source]¶ get_reg_value_at
gets the value the provided string register address corresponding to the given virtual addressParameters: - addr (int) – virtual address of the instruction to query
- reg (str) – string value of native register to query
- arch (Architecture) – (optional) Architecture for the given function
Return type: Example: >>> func.get_reg_value_at(0x400dbe, 'rdi') <const 0x2>
-
get_stack_contents_at
(addr, offset, size, arch=None)[source]¶ get_stack_contents_at
returns the RegisterValue for the item on the stack in the current function at the given virtual addressaddr
, stack offsetoffset
and size ofsize
. Optionally specifying the architecture.Parameters: - addr (int) – virtual address of the instruction to query
- offset (int) – stack offset base of stack
- size (int) – size of memory to query
- arch (Architecture) – (optional) Architecture for the given function
Return type: Note
Stack base is zero on entry into the function unless the architecture places the return address on the
stack as in (x86/x86_64) where the stack base will start at address_size
Example: >>> func.get_stack_contents_at(0x400fad, -16, 4) <range: 0x8 to 0xffffffff>
-
global_pointer_value
¶ Discovered value of the global pointer register, if the function uses one (read-only)
-
has_variable_arguments
¶ Whether the function takes a variable number of arguments
-
indirect_branches
¶ List of indirect branches (read-only)
-
instructions
¶ A generator of instruction tokens and their start addresses for the current function
-
lifted_il
¶ returns LowLevelILFunction used to represent lifted IL (read-only)
-
llil_basic_blocks
¶ A generator of all LowLevelILBasicBlock objects in the current function
-
llil_instructions
¶ A generator of llil instructions of the current function
-
low_level_il
¶ returns LowLevelILFunction used to represent Function low level IL (read-only)
-
medium_level_il
¶ Function medium level IL (read-only)
-
mlil_basic_blocks
¶ A generator of all MediumLevelILBasicBlock objects in the current function
-
mlil_instructions
¶ A generator of mlil instructions of the current function
-
name
¶ Symbol name for the function
-
needs_update
¶ Whether the function has analysis that needs to be updated (read-only)
-
parameter_vars
¶ List of variables for the incoming function parameters
-
platform
¶ Function platform (read-only)
-
reanalyze
()[source]¶ reanalyze
causes this functions to be reanalyzed. This function does not wait for the analysis to finish.Return type: None
-
reg_stack_adjustments
¶ Number of entries removed from each register stack after return
-
return_regs
¶ Registers that are used for the return value
-
return_type
¶ Return type of the function
-
session_data
¶ Dictionary object where plugins can store arbitrary data associated with the function
-
set_auto_instr_highlight
(addr, color, arch=None)[source]¶ set_auto_instr_highlight
highlights the instruction at the specified address with the supplied color..warning:: Use only in analysis plugins. Do not use in regular plugins, as colors won’t be saved to the database.
Parameters: - addr (int) – virtual address of the instruction to be highlighted
- or highlight.HighlightColor color (HighlightStandardColor) – Color value to use for highlighting
- arch (Architecture) – (optional) Architecture of the instruction if different from self.arch
-
set_comment_at
(addr, comment)[source]¶ set_comment_at
sets a comment for the current function at the address specifiedParameters: - int (addr) – virtual address within the current function to apply the comment to
- str (comment) – string comment to apply
Return type: Example: >>> current_function.set_comment_at(here, "hi")
-
set_int_display_type
(instr_addr, value, operand, display_type, arch=None)[source]¶ Parameters: - instr_addr (int) –
- value (int) –
- operand (int) –
- display_type (enums.IntegerDisplayType) –
- arch (Architecture) – (optional)
-
set_user_instr_highlight
(addr, color, arch=None)[source]¶ set_user_instr_highlight
highlights the instruction at the specified address with the supplied colorParameters: - addr (int) – virtual address of the instruction to be highlighted
- or highlight.HighlightColor color (HighlightStandardColor) – Color value to use for highlighting
- arch (Architecture) – (optional) Architecture of the instruction if different from self.arch
Example: >>> current_function.set_user_instr_highlight(here, HighlightStandardColor.BlueHighlightColor) >>> current_function.set_user_instr_highlight(here, highlight.HighlightColor(red=0xff, blue=0xff, green=0))
-
stack_adjustment
¶ Number of bytes removed from the stack after return
-
stack_layout
¶ List of function stack variables (read-only)
-
start
¶ Function start (read-only)
-
symbol
¶ Function symbol(read-only)
-
too_large
¶ Whether the function is too large to automatically perform analysis (read-only)
-
type_tokens
¶ Text tokens for this function’s prototype
-
vars
¶ List of function variables (read-only)
-
view
¶ Function view (read-only)
-
-
class
binaryninja.function.
FunctionGraph
(view, handle)[source]¶ Bases:
object
-
blocks
¶ List of basic blocks in function (read-only)
-
complete
¶ Whether function graph layout is complete (read-only)
-
function
¶ Function for a function graph (read-only)
-
has_blocks
¶ Whether the function graph has at least one block (read-only)
-
height
¶ Function graph height (read-only)
-
horizontal_block_margin
¶
-
il_function
¶
-
is_il
¶
-
is_low_level_il
¶
-
is_medium_level_il
¶
-
settings
¶
-
type
¶ Function graph type (read-only)
-
vertical_block_margin
¶
-
width
¶ Function graph width (read-only)
-
-
class
binaryninja.function.
FunctionGraphBlock
(handle, graph)[source]¶ Bases:
object
-
arch
¶ Function graph block architecture (read-only)
-
basic_block
¶ Basic block associated with this part of the function graph (read-only)
-
end
¶ Function graph block end (read-only)
-
height
¶ Function graph block height (read-only)
-
lines
¶ Function graph block list of lines (read-only)
-
outgoing_edges
¶ Function graph block list of outgoing edges (read-only)
-
start
¶ Function graph block start (read-only)
-
width
¶ Function graph block width (read-only)
-
x
¶ Function graph block X (read-only)
-
y
¶ Function graph block Y (read-only)
-
-
class
binaryninja.function.
FunctionGraphEdge
(branch_type, source, target, points, back_edge)[source]¶ Bases:
object
-
class
binaryninja.function.
IndirectBranchInfo
(source_arch, source_addr, dest_arch, dest_addr, auto_defined)[source]¶ Bases:
object
-
class
binaryninja.function.
InstructionBranch
(branch_type, target=0, arch=None)[source]¶ Bases:
object
-
class
binaryninja.function.
InstructionTextToken
(token_type, text, value=0, size=0, operand=4294967295, context=<InstructionTextTokenContext.NoTokenContext: 0>, address=0, confidence=255)[source]¶ Bases:
object
class InstructionTextToken
is used to tell the core about the various components in the disassembly views.InstructionTextTokenType Description TextToken Text that doesn’t fit into the other tokens InstructionToken The instruction mnemonic OperandSeparatorToken The comma or whatever else separates tokens RegisterToken Registers IntegerToken Integers PossibleAddressToken Integers that are likely addresses BeginMemoryOperandToken The start of memory operand EndMemoryOperandToken The end of a memory operand FloatingPointToken Floating point number AnnotationToken For internal use only CodeRelativeAddressToken For internal use only StackVariableTypeToken For internal use only DataVariableTypeToken For internal use only FunctionReturnTypeToken For internal use only FunctionAttributeToken For internal use only ArgumentTypeToken For internal use only ArgumentNameToken For internal use only HexDumpByteValueToken For internal use only HexDumpSkippedByteToken For internal use only HexDumpInvalidByteToken For internal use only HexDumpTextToken For internal use only OpcodeToken For internal use only StringToken For internal use only CharacterConstantToken For internal use only CodeSymbolToken For internal use only DataSymbolToken For internal use only StackVariableToken For internal use only ImportToken For internal use only AddressDisplayToken For internal use only
-
class
binaryninja.function.
RegisterInfo
(full_width_reg, size, offset=0, extend=<ImplicitRegisterExtend.NoExtend: 0>, index=None)[source]¶ Bases:
object
-
class
binaryninja.function.
RegisterStackInfo
(storage_regs, top_relative_regs, stack_top_reg, index=None)[source]¶ Bases:
object
-
class
binaryninja.function.
RegisterValue
(arch=None, value=None, confidence=255)[source]¶ Bases:
object