MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / get_callees

Method get_callees

python/binaryview.py:6055–6086  ·  view source on GitHub ↗

``get_callees`` returns a list of virtual addresses called by the call site in the function ``func``, of the architecture ``arch``, and at the address ``addr``. If no function is specified, call sites from all functions and containing the address will be considered. If no architecture is spec

(self, addr: int, func: Optional['_function.Function'] = None,
	                arch: Optional['architecture.Architecture'] = None)

Source from the content-addressed store, hash-verified

6053 core.BNFreeCodeReferences(refs, count.value)
6054
6055 def get_callees(self, addr: int, func: Optional['_function.Function'] = None,
6056 arch: Optional['architecture.Architecture'] = None) -> List[int]:
6057 """
6058 ``get_callees`` returns a list of virtual addresses called by the call site in the function ``func``,
6059 of the architecture ``arch``, and at the address ``addr``. If no function is specified, call sites from
6060 all functions and containing the address will be considered. If no architecture is specified, the
6061 architecture of the function will be used.
6062
6063 :param int addr: virtual address of the call site to query for callees
6064 :param Function func: (optional) the function that the call site belongs to
6065 :param Architecture func: (optional) the architecture of the call site
6066 :return: list of integers
6067 :rtype: list(integer)
6068 """
6069
6070 result = []
6071 funcs = self.get_functions_containing(addr) if func is None else [func]
6072 if not funcs:
6073 return []
6074 for src_func in funcs:
6075 src_arch = src_func.arch if arch is None else arch
6076 assert src_arch is not None
6077 ref_src = core.BNReferenceSource(src_func.handle, src_arch.handle, addr)
6078 count = ctypes.c_ulonglong(0)
6079 refs = core.BNGetCallees(self.handle, ref_src, count)
6080 assert refs is not None, "core.BNGetCallees returned None"
6081 try:
6082 for i in range(0, count.value):
6083 result.append(refs[i])
6084 finally:
6085 core.BNFreeAddressList(refs)
6086 return result
6087
6088 def get_symbol_at(self, addr: int, namespace: '_types.NameSpaceType' = None) -> Optional['_types.CoreSymbol']:
6089 """

Callers 1

callee_addressesMethod · 0.80

Calls 2

appendMethod · 0.45

Tested by

no test coverage detected