Binary Ninja#
- class cle.backends.binja.BinjaSymbol[source]#
Bases:
Symbol
- BINJA_FUNC_SYM_TYPES = []#
- BINJA_DATA_SYM_TYPES = []#
- BINJA_IMPORT_TYPES = []#
- class cle.backends.binja.BinjaReloc[source]#
Bases:
Relocation
- property value#
- class cle.backends.binja.BinjaBin[source]#
Bases:
Backend
Get information from binaries using Binary Ninja. Basing this on idabin.py, but will try to be more complete. TODO: add more features as Binary Ninja’s feature set improves
- is_default = True#
- BINJA_ARCH_MAP = {'aarch64': <Arch AARCH64 (LE)>, 'armv7': <Arch ARMEL (LE)>, 'armv7eb': <Arch ARMEL (BE)>, 'mips32': <Arch MIPS32 (BE)>, 'mipsel32': <Arch MIPS32 (LE)>, 'ppc': <Arch PPC32 (BE)>, 'ppc_le': <Arch PPC32 (LE)>, 'thumb2': <Arch ARMEL (LE)>, 'thumb2eb': <Arch ARMEL (BE)>, 'x86': <Arch X86 (LE)>, 'x86_64': <Arch AMD64 (LE)>}#
- __init__(binary, *args, **kwargs)[source]#
- Parameters:
binary – The path to the binary to load
binary_stream – The open stream to this binary. The reference to this will be held until you call close.
is_main_bin – Whether this binary should be loaded as the main executable
- static is_compatible(stream)[source]#
Determine quickly whether this backend can load an object from this stream
- property min_addr#
this is probably not “right”)
- Type:
Get the min address of the binary. (note
- property max_addr#
Get the max address of the binary.
- property entry#
- set_got_entry(name, newaddr)[source]#
Resolve import name with address newaddr. That is, update the GOT entry for name with newaddr.
- imports: typing.Dict[str, 'Relocation']#
- relocs: List[Relocation]#
- child_objects: List['Backend']#
- exception_handlings: List[ExceptionHandling]#
- function_hints: List[FunctionHint]#
- memory: Clemory#
- cached_content: Optional[bytes]#