Skip to content

integration ¤

Modules:

  • binja

    Talks to an XMLRPC server running inside of an active Binary Ninja instance,

  • ida

    Talks to an XMLRPC server running inside of an active IDA Pro instance,

Classes:

  • IntegrationProvider

    A class representing an integration that provides intelligence external to GDB.

  • ConfigurableProvider

    A wrapper around an IntegrationProvider that skips calling functions if disabled in config.

Functions:

Attributes:

provider_name module-attribute ¤

provider_name = add_param(
    "integration-provider",
    "none",
    "which provider to use for integration features",
    param_class=PARAM_ENUM,
    enum_sequence=["none", "binja", "ida"],
)

symbol_lookup module-attribute ¤

symbol_lookup = add_param(
    "integration-symbol-lookup",
    True,
    "whether to use integration to look up unknown symbols",
)

smart_enhance module-attribute ¤

smart_enhance = add_param(
    "integration-smart-enhance",
    True,
    "use integration to determine when to disassemble during enhancing",
)

function_lookup module-attribute ¤

function_lookup = add_param(
    "integration-function-lookup",
    True,
    "use integration to look up function type signatures",
)

provider module-attribute ¤

IntegrationProvider ¤

A class representing an integration that provides intelligence external to GDB.

Methods:

  • get_symbol

    Get a symbol at an address, or an offset from a symbol.

  • get_versions

    Gets any version strings relevant to the integration,

  • is_in_function

    Checks if integration thinks that an address is in a function,

  • get_comment_lines

    Gets any comments attached to an instruction.

  • decompile

    Decompiles the code near an address given a line count.

  • get_func_type

    Gets the type signature of a function, used for argument labeling.

  • get_stack_var_name

    Gets the name of a stack variable based on only the address of the variable.

get_symbol ¤

get_symbol(addr: int) -> str | None

Get a symbol at an address, or an offset from a symbol.

get_versions ¤

get_versions() -> tuple[str, ...]

Gets any version strings relevant to the integration, which are used when displaying the version command.

is_in_function ¤

is_in_function(addr: int) -> bool

Checks if integration thinks that an address is in a function, which is used to determine if tel should try to disassemble something.

If uncertain, it's better to default to True than to False.

get_comment_lines ¤

get_comment_lines(addr: int) -> list[str]

Gets any comments attached to an instruction.

decompile ¤

decompile(addr: int, lines: int) -> list[str] | None

Decompiles the code near an address given a line count.

get_func_type ¤

get_func_type(addr: int) -> Function | None

Gets the type signature of a function, used for argument labeling.

get_stack_var_name ¤

get_stack_var_name(addr: int) -> str | None

Gets the name of a stack variable based on only the address of the variable.

ConfigurableProvider dataclass ¤

ConfigurableProvider(inner: IntegrationProvider)

Bases: IntegrationProvider

A wrapper around an IntegrationProvider that skips calling functions if disabled in config.

Methods:

Attributes:

inner instance-attribute ¤

get_symbol ¤

get_symbol(addr: int) -> str | None

get_versions ¤

get_versions() -> tuple[str, ...]

is_in_function ¤

is_in_function(addr: int) -> bool

get_comment_lines ¤

get_comment_lines(addr: int) -> list[str]

decompile ¤

decompile(addr: int, lines: int) -> list[str] | None

get_func_type ¤

get_func_type(addr: int) -> Function | None

get_stack_var_name ¤

get_stack_var_name(addr: int) -> str | None

switch_providers ¤

switch_providers()