Architecture module
Contains the interface definition of an architecture.
- class ocgraph.internal.architecture.interface.Architecture
Bases:
ABCArchitecture Class defining the target specific instruction set characteristics.
- abstract get_branch_delay(instruction: Instruction) int
Return the branch delay of an instruction.
- abstract is_branch(instruction: Instruction) bool
Return if disassembled instruction is a branch instruction.
- abstract is_call(instruction: Instruction) bool
Return if disassembled instruction is a subroutine call.
- abstract is_direct_branch(instruction: Instruction) bool
Return true when the given instruction is a direct branch.
- abstract is_sink(instruction: Instruction) bool
Return if disassembled instruction serves as sink (e.g. ret).
- abstract is_unconditional_branch(instruction: Instruction) bool
Return if disassembled instruction is an unconditional branch.
Contains the functionality to create a specific Architecture.
- class ocgraph.internal.architecture.factory.ArchitectureFactory
Bases:
objectFactory class to instantiate a Parser.
- static create(name: str) Architecture
Create a Parser according to the given configuration.
- static options() list[str]
Return all available architectures options.
Contains a generic architecture class with most common use .
- class ocgraph.internal.architecture.generic.GenericArchitecture
Bases:
Architecture,ABCGeneric Architecture Class.
- get_branch_delay(instruction: Instruction) int
Return the branch delay of an instruction.
- is_direct_branch(instruction: Instruction) bool
Return true if the given instruction is a direct branch.
Contains instruction info for ARM-compatible architecture.
- class ocgraph.internal.architecture.arm.ArmArchitecture
Bases:
GenericArchitectureArmArchitecture Class.
- is_branch(instruction: Instruction) bool
Return if disassembled instruction is a branch instruction.
- is_call(instruction: Instruction) bool
Return if disassembled instruction is a subroutine call.
- Various flavors of call:
bl 0x19d90 <_IO_vtable_check>
Note that we should be careful to not mix it with conditional branches like ‘ble’.
- is_sink(instruction: Instruction) bool
Detect various flavors of return like.
bx lr op {r2-r6,pc}
Note that we do not consider conditional branches (e.g. ‘bxle’) to sink.
- is_unconditional_branch(instruction: Instruction) bool
Return if disassembled instruction is an unconditional branch.
Contains instruction info for MSP430-compatible architecture.
- class ocgraph.internal.architecture.msp430.MSP430Architecture
Bases:
GenericArchitectureMsp430Architecture Class.
- is_branch(instruction: Instruction) bool
Return if disassembled instruction is a branch instruction.
- is_call(instruction: Instruction) bool
Return if disassembled instruction is a subroutine call.
- is_direct_branch(instruction: Instruction) bool
Return true when the given instruction is a direct branch.
- is_sink(instruction: Instruction) bool
Return if disassembled instruction serves as sink (e.g. ret).
- is_unconditional_branch(instruction: Instruction) bool
Return if disassembled instruction is an unconditional branch.
Contains instruction info for PPC-compatible architecture.
- class ocgraph.internal.architecture.ppc.PpcArchitecture
Bases:
GenericArchitecturePpcArchitecture Class.
- is_branch(instruction: Instruction) bool
Return if disassembled instruction is a branch instruction.
- is_call(instruction: Instruction) bool
Return if disassembled instruction is a subroutine call.
- is_sink(instruction: Instruction) bool
Return if disassembled instruction serves as sink (e.g. ret).
- is_unconditional_branch(instruction: Instruction) bool
Return if disassembled instruction is an unconditional branch.
Contains instruction info for SPARC-compatible Architecture.
- class ocgraph.internal.architecture.sparc.SparcArchitecture
Bases:
GenericArchitectureSparcArchitecture Class.
- get_branch_delay(instruction: Instruction) int
Return the branch delay of an instruction.
- is_branch(instruction: Instruction) bool
Return if disassembled instruction is a branch instruction.
- is_call(instruction: Instruction) bool
Return if disassembled instruction is a subroutine call.
- is_direct_branch(instruction: Instruction) bool
Return true when the given instruction is a direct branch.
- is_sink(instruction: Instruction) bool
Return if disassembled instruction serves as sink (e.g. ret).
- is_unconditional_branch(instruction: Instruction) bool
Return if disassembled instruction is an unconditional branch.
Contains instruction info for x86-compatible architectures.
- class ocgraph.internal.architecture.x86.X86Architecture
Bases:
GenericArchitectureX86Architecture Class.
- is_branch(instruction: Instruction) bool
Return if disassembled instruction is a branch instruction.
- is_call(instruction: Instruction) bool
Return if disassembled instruction is a subroutine call.
- is_sink(instruction: Instruction) bool
Return if disassembled instruction serves as sink (e.g. ret).
- is_unconditional_branch(instruction: Instruction) bool
Return if disassembled instruction is an unconditional branch.