about summary refs log tree commit diff stats
path: root/miasm2/analysis/machine.py
diff options
context:
space:
mode:
Diffstat (limited to 'miasm2/analysis/machine.py')
-rw-r--r--miasm2/analysis/machine.py265
1 files changed, 0 insertions, 265 deletions
diff --git a/miasm2/analysis/machine.py b/miasm2/analysis/machine.py
deleted file mode 100644
index f12b7e57..00000000
--- a/miasm2/analysis/machine.py
+++ /dev/null
@@ -1,265 +0,0 @@
-#-*- coding:utf-8 -*-
-
-
-class Machine(object):
-    """Abstract machine architecture to restrict architecture dependent code"""
-
-    __dis_engine = None   # Disassembly engine
-    __mn = None           # Machine instance
-    __ira = None          # IR analyser
-    __jitter = None       # Jit engine
-    __gdbserver = None    # GdbServer handler
-
-    __available = ["arml", "armb", "armtl", "armtb", "sh4", "x86_16", "x86_32",
-                   "x86_64", "msp430", "mips32b", "mips32l",
-                   "aarch64l", "aarch64b", "ppc32b", "mepl", "mepb"]
-
-
-    def __init__(self, machine_name):
-
-        dis_engine = None
-        mn = None
-        ira = None
-        ir = None
-        jitter = None
-        gdbserver = None
-        jit = None
-        jitter = None
-        log_jit = None
-        log_arch = None
-
-        # Import on runtime for performance issue
-        if machine_name == "arml":
-            from miasm2.arch.arm.disasm import dis_arml as dis_engine
-            from miasm2.arch.arm import arch
-            try:
-                from miasm2.arch.arm import jit
-                jitter = jit.jitter_arml
-            except ImportError:
-                pass
-            mn = arch.mn_arm
-            from miasm2.arch.arm.ira import ir_a_arml as ira
-            from miasm2.arch.arm.sem import ir_arml as ir
-        elif machine_name == "armb":
-            from miasm2.arch.arm.disasm import dis_armb as dis_engine
-            from miasm2.arch.arm import arch
-            try:
-                from miasm2.arch.arm import jit
-                jitter = jit.jitter_armb
-            except ImportError:
-                pass
-            mn = arch.mn_arm
-            from miasm2.arch.arm.ira import ir_a_armb as ira
-            from miasm2.arch.arm.sem import ir_armb as ir
-        elif machine_name == "aarch64l":
-            from miasm2.arch.aarch64.disasm import dis_aarch64l as dis_engine
-            from miasm2.arch.aarch64 import arch
-            try:
-                from miasm2.arch.aarch64 import jit
-                jitter = jit.jitter_aarch64l
-            except ImportError:
-                pass
-            mn = arch.mn_aarch64
-            from miasm2.arch.aarch64.ira import ir_a_aarch64l as ira
-            from miasm2.arch.aarch64.sem import ir_aarch64l as ir
-        elif machine_name == "aarch64b":
-            from miasm2.arch.aarch64.disasm import dis_aarch64b as dis_engine
-            from miasm2.arch.aarch64 import arch
-            try:
-                from miasm2.arch.aarch64 import jit
-                jitter = jit.jitter_aarch64b
-            except ImportError:
-                pass
-            mn = arch.mn_aarch64
-            from miasm2.arch.aarch64.ira import ir_a_aarch64b as ira
-            from miasm2.arch.aarch64.sem import ir_aarch64b as ir
-        elif machine_name == "armtl":
-            from miasm2.arch.arm.disasm import dis_armtl as dis_engine
-            from miasm2.arch.arm import arch
-            mn = arch.mn_armt
-            from miasm2.arch.arm.ira import ir_a_armtl as ira
-            from miasm2.arch.arm.sem import ir_armtl as ir
-            try:
-                from miasm2.arch.arm import jit
-                jitter = jit.jitter_armtl
-            except ImportError:
-                pass
-        elif machine_name == "armtb":
-            from miasm2.arch.arm.disasm import dis_armtb as dis_engine
-            from miasm2.arch.arm import arch
-            mn = arch.mn_armt
-            from miasm2.arch.arm.ira import ir_a_armtb as ira
-            from miasm2.arch.arm.sem import ir_armtb as ir
-        elif machine_name == "sh4":
-            from miasm2.arch.sh4 import arch
-            mn = arch.mn_sh4
-        elif machine_name == "x86_16":
-            from miasm2.arch.x86.disasm import dis_x86_16 as dis_engine
-            from miasm2.arch.x86 import arch
-            try:
-                from miasm2.arch.x86 import jit
-                jitter = jit.jitter_x86_16
-            except ImportError:
-                pass
-            mn = arch.mn_x86
-            from miasm2.arch.x86.ira import ir_a_x86_16 as ira
-            from miasm2.arch.x86.sem import ir_x86_16 as ir
-        elif machine_name == "x86_32":
-            from miasm2.arch.x86.disasm import dis_x86_32 as dis_engine
-            from miasm2.arch.x86 import arch
-            try:
-                from miasm2.arch.x86 import jit
-                jitter = jit.jitter_x86_32
-            except ImportError:
-                pass
-            mn = arch.mn_x86
-            from miasm2.arch.x86.ira import ir_a_x86_32 as ira
-            from miasm2.arch.x86.sem import ir_x86_32 as ir
-            try:
-                from miasm2.analysis.gdbserver import GdbServer_x86_32 as gdbserver
-            except ImportError:
-                pass
-        elif machine_name == "x86_64":
-            from miasm2.arch.x86.disasm import dis_x86_64 as dis_engine
-            from miasm2.arch.x86 import arch
-            try:
-                from miasm2.arch.x86 import jit
-                jitter = jit.jitter_x86_64
-            except ImportError:
-                pass
-            mn = arch.mn_x86
-            from miasm2.arch.x86.ira import ir_a_x86_64 as ira
-            from miasm2.arch.x86.sem import ir_x86_64 as ir
-        elif machine_name == "msp430":
-            from miasm2.arch.msp430.disasm import dis_msp430 as dis_engine
-            from miasm2.arch.msp430 import arch
-            try:
-                from miasm2.arch.msp430 import jit
-                jitter = jit.jitter_msp430
-            except ImportError:
-                pass
-            mn = arch.mn_msp430
-            from miasm2.arch.msp430.ira import ir_a_msp430 as ira
-            from miasm2.arch.msp430.sem import ir_msp430 as ir
-            try:
-                from miasm2.analysis.gdbserver import GdbServer_msp430 as gdbserver
-            except ImportError:
-                pass
-        elif machine_name == "mips32b":
-            from miasm2.arch.mips32.disasm import dis_mips32b as dis_engine
-            from miasm2.arch.mips32 import arch
-            try:
-                from miasm2.arch.mips32 import jit
-                jitter = jit.jitter_mips32b
-            except ImportError:
-                pass
-            mn = arch.mn_mips32
-            from miasm2.arch.mips32.ira import ir_a_mips32b as ira
-            from miasm2.arch.mips32.sem import ir_mips32b as ir
-        elif machine_name == "mips32l":
-            from miasm2.arch.mips32.disasm import dis_mips32l as dis_engine
-            from miasm2.arch.mips32 import arch
-            try:
-                from miasm2.arch.mips32 import jit
-                jitter = jit.jitter_mips32l
-            except ImportError:
-                pass
-            mn = arch.mn_mips32
-            from miasm2.arch.mips32.ira import ir_a_mips32l as ira
-            from miasm2.arch.mips32.sem import ir_mips32l as ir
-        elif machine_name == "ppc32b":
-            from miasm2.arch.ppc.disasm import dis_ppc32b as dis_engine
-            from miasm2.arch.ppc import arch
-            try:
-                from miasm2.arch.ppc import jit
-                jitter = jit.jitter_ppc32b
-            except ImportError:
-                pass
-            mn = arch.mn_ppc
-            from miasm2.arch.ppc.ira import ir_a_ppc32b as ira
-            from miasm2.arch.ppc.sem import ir_ppc32b as ir
-        elif machine_name == "mepb":
-            from miasm2.arch.mep.disasm import dis_mepb as dis_engine
-            from miasm2.arch.mep import arch
-            try:
-                from miasm2.arch.mep import jit
-                jitter = jit.jitter_mepb
-            except ImportError:
-                pass
-            mn = arch.mn_mep
-            from miasm2.arch.mep.ira import ir_a_mepb as ira
-            from miasm2.arch.mep.sem import ir_mepb as ir
-        elif machine_name == "mepl":
-            from miasm2.arch.mep.disasm import dis_mepl as dis_engine
-            from miasm2.arch.mep import arch
-            try:
-                from miasm2.arch.mep import jit
-                jitter = jit.jitter_mepl
-            except ImportError:
-                pass
-            mn = arch.mn_mep
-            from miasm2.arch.mep.ira import ir_a_mepl as ira
-            from miasm2.arch.mep.sem import ir_mepl as ir
-        else:
-            raise ValueError('Unknown machine: %s' % machine_name)
-
-        # Loggers
-        if jit is not None:
-            log_jit = jit.log
-        log_arch = arch.log
-
-        self.__dis_engine = dis_engine
-        self.__mn = mn
-        self.__ira = ira
-        self.__jitter = jitter
-        self.__gdbserver = gdbserver
-        self.__log_jit = log_jit
-        self.__log_arch = log_arch
-        self.__base_expr = arch.base_expr
-        self.__ir = ir
-        self.__name = machine_name
-
-    @property
-    def dis_engine(self):
-        return self.__dis_engine
-
-    @property
-    def mn(self):
-        return self.__mn
-
-    @property
-    def ira(self):
-        return self.__ira
-
-    @property
-    def ir(self):
-        return self.__ir
-
-    @property
-    def jitter(self):
-        return self.__jitter
-
-    @property
-    def gdbserver(self):
-        return self.__gdbserver
-
-    @property
-    def log_jit(self):
-        return self.__log_jit
-
-    @property
-    def log_arch(self):
-        return self.__log_arch
-
-    @property
-    def base_expr(self):
-        return self.__base_expr
-
-    @property
-    def name(self):
-        return self.__name
-
-    @classmethod
-    def available_machine(cls):
-        "Return a list of supported machines"
-        return cls.__available