Skip to content

Redesign the architecture recognition module in the python bindings #13

Description

@patacca

As it is right now the whole architecture handling code that mostly resides in the analysis folder is rarely (if not never) being used in other parts of the python bindings and it is not easily extendible with other architectures.
There are some of the issues with its current implementation:

  • The base QuokkaArch class contains some fields that are either not common in all architectures (there is no inst_pointer register in ppc) or not easily defined (like compared_mnemonics)
  • We aim to use QuokkaArch as an interface to a generic architecture but at the same time we are building the various architecture specific subclasses directly from capstone, so it doesn't hold much additional information.
  • Imho it makes more sense to get the calling convention from the binary itself instead of defining them per system/architecture
  • The Enviornment and Replacer classes are never being used

As things are right now it's not really working as intended, either we drop it and just rely on capstone architecture or we fix it to have a proper interface to a generic architecture

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is neededquestionFurther information is requested

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions