Abstract Interface¶
AbstractProgramBackend¶
- class qbindiff.loader.backend.AbstractProgramBackend[source]¶
Bases:
object
This is an abstract class and should not be used as is. It represents a generic backend loader for a Program
- property capabilities: ProgramCapability¶
Returns the supported capabilities
- abstract property fun_names: dict[str, int]¶
Returns a dictionary with function name as key and the function address as value.
- abstract property functions: Iterator[AbstractFunctionBackend]¶
Returns an iterator over backend function objects.
AbstractFunctionBackend¶
- class qbindiff.loader.backend.AbstractFunctionBackend[source]¶
Bases:
object
This is an abstract class and should not be used as is. It represents a generic backend loader for a Function.
- abstract property basic_blocks: Iterator[AbstractBasicBlockBackend]¶
Returns an iterator over backend basic blocks objects.
- abstract property type: FunctionType¶
The type of the function.
AbstractBasicBlockBackend¶
- class qbindiff.loader.backend.AbstractBasicBlockBackend[source]¶
Bases:
object
This is an abstract class and should not be used as is. It represents a generic backend loader for a BasicBlock
- abstract property instructions: Iterator[AbstractInstructionBackend]¶
Returns an iterator over backend instruction objects
AbstractInstructionBackend¶
- class qbindiff.loader.backend.AbstractInstructionBackend[source]¶
Bases:
object
This is an abstract class and should not be used as is. It represents a generic backend loader for a Instruction
- MAX_ID = 3000¶
Max instruction ID. All the instruction IDs will be in the range [0, MAX_ID]
- property groups: list[InstructionGroup]¶
Returns a list of groups of this instruction. Provided with the INSTR_GROUP capability
- abstract property id: int¶
Returns the instruction ID as a non negative int. The ID is in the range [0, MAX_ID]. The value MAX_ID means that there is no ID available.
Warning
The backend is responsible for creating this value, different backends should not be considered compatible between each other. (For example IDA relies on IDA IDs while quokka relies on capstone IDs)
- abstract property operands: Iterator[AbstractOperandBackend]¶
Returns an iterator over backend operand objects
- property pcode_ops: list[PcodeOp]¶
List of PcodeOp associated with the instruction. Provided with the PCODE capability
- abstract property references: dict[ReferenceType, list[Data | Structure | StructureMember]]¶
Returns all the references towards the instruction
AbstractOperandBackend¶
- class qbindiff.loader.backend.AbstractOperandBackend[source]¶
Bases:
object
This is an abstract class and should not be used as is. It represents a generic backend loader for a Operand
- abstract is_immediate() bool [source]¶
Returns whether the operand is an immediate value (not considering addresses)
- abstract property type: OperandType¶
Returns the operand type.