├── .gitignore ├── simuvex ├── s_type.py ├── s_errors.py ├── s_pcap.py ├── s_slicer.py ├── s_state.py ├── s_cc.py ├── s_options.py ├── s_procedure.py ├── s_variable.py ├── storage │ ├── file.py │ ├── memory.py │ ├── paged_memory.py │ ├── memory_object.py │ └── __init__.py ├── plugins │ ├── cgc.py │ ├── gdb.py │ ├── log.py │ ├── libc.py │ ├── posix.py │ ├── view.py │ ├── inspect.py │ ├── plugin.py │ ├── scratch.py │ ├── solver.py │ ├── uc_manager.py │ ├── fast_memory.py │ ├── abstract_memory.py │ ├── symbolic_memory.py │ ├── unicorn_engine.py │ └── __init__.py ├── s_action.py ├── s_event.py ├── s_type_backend.py ├── engines │ ├── engine.py │ ├── procedure.py │ ├── vex │ │ ├── ccall.py │ │ ├── dirty.py │ │ ├── irop.py │ │ ├── engine.py │ │ ├── expressions │ │ │ ├── get.py │ │ │ ├── ite.py │ │ │ ├── op.py │ │ │ ├── base.py │ │ │ ├── geti.py │ │ │ ├── load.py │ │ │ ├── ccall.py │ │ │ ├── const.py │ │ │ ├── gsptr.py │ │ │ ├── rdtmp.py │ │ │ ├── vecret.py │ │ │ ├── unsupported.py │ │ │ └── __init__.py │ │ ├── statements │ │ │ ├── base.py │ │ │ ├── cas.py │ │ │ ├── exit.py │ │ │ ├── llsc.py │ │ │ ├── mbe.py │ │ │ ├── noop.py │ │ │ ├── put.py │ │ │ ├── puti.py │ │ │ ├── dirty.py │ │ │ ├── imark.py │ │ │ ├── loadg.py │ │ │ ├── store.py │ │ │ ├── wrtmp.py │ │ │ ├── abihint.py │ │ │ ├── storeg.py │ │ │ └── __init__.py │ │ └── __init__.py │ ├── successors.py │ ├── unicorn_engine.py │ └── __init__.py ├── s_format.py ├── s_action_object.py ├── concretization_strategies │ ├── any.py │ ├── max.py │ ├── range.py │ ├── single.py │ ├── nonzero.py │ ├── norepeats.py │ ├── solutions.py │ ├── nonzero_range.py │ ├── norepeats_range.py │ └── __init__.py └── __init__.py ├── README.md ├── setup.py ├── test.py └── LICENSE /.gitignore: -------------------------------------------------------------------------------- 1 | *.eggs 2 | *.pyc 3 | *.egg-info 4 | -------------------------------------------------------------------------------- /simuvex/s_type.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/s_type.py ...' 2 | from angr.sim_type import * 3 | -------------------------------------------------------------------------------- /simuvex/s_errors.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/s_errors.py ...' 2 | from angr.errors import * 3 | -------------------------------------------------------------------------------- /simuvex/s_pcap.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/s_pcap.py ...' 2 | from angr.storage.pcap import * 3 | -------------------------------------------------------------------------------- /simuvex/s_slicer.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/s_slicer.py ...' 2 | from angr.slicer import * 3 | -------------------------------------------------------------------------------- /simuvex/s_state.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/s_state.py ...' 2 | from angr.sim_state import * 3 | -------------------------------------------------------------------------------- /simuvex/s_cc.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/s_cc.py ...' 2 | from angr.calling_conventions import * 3 | -------------------------------------------------------------------------------- /simuvex/s_options.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/s_options.py ...' 2 | from angr.sim_options import * 3 | -------------------------------------------------------------------------------- /simuvex/s_procedure.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/s_procedure.py ...' 2 | from angr.sim_procedure import * 3 | -------------------------------------------------------------------------------- /simuvex/s_variable.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/s_variable.py ...' 2 | from angr.sim_variable import * 3 | -------------------------------------------------------------------------------- /simuvex/storage/file.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/storage/file.py ...' 2 | from angr.storage.file import * 3 | -------------------------------------------------------------------------------- /simuvex/plugins/cgc.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/plugins/cgc.py ...' 2 | from angr.state_plugins.cgc import * 3 | -------------------------------------------------------------------------------- /simuvex/plugins/gdb.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/plugins/gdb.py ...' 2 | from angr.state_plugins.gdb import * 3 | -------------------------------------------------------------------------------- /simuvex/plugins/log.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/plugins/log.py ...' 2 | from angr.state_plugins.log import * 3 | -------------------------------------------------------------------------------- /simuvex/s_action.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/s_action.py ...' 2 | from angr.state_plugins.sim_action import * 3 | -------------------------------------------------------------------------------- /simuvex/s_event.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/s_event.py ...' 2 | from angr.state_plugins.sim_event import * 3 | -------------------------------------------------------------------------------- /simuvex/s_type_backend.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/s_type_backend.py ...' 2 | from angr.type_backend import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/engine.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/engine.py ...' 2 | from angr.engines.engine import * 3 | -------------------------------------------------------------------------------- /simuvex/plugins/libc.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/plugins/libc.py ...' 2 | from angr.state_plugins.libc import * 3 | -------------------------------------------------------------------------------- /simuvex/plugins/posix.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/plugins/posix.py ...' 2 | from angr.state_plugins.posix import * 3 | -------------------------------------------------------------------------------- /simuvex/plugins/view.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/plugins/view.py ...' 2 | from angr.state_plugins.view import * 3 | -------------------------------------------------------------------------------- /simuvex/s_format.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/s_format.py ...' 2 | from angr.procedures.stubs.format_parser import * 3 | -------------------------------------------------------------------------------- /simuvex/storage/memory.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/storage/memory.py ...' 2 | from angr.storage.memory import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/procedure.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/procedure.py ...' 2 | from angr.engines.procedure import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/ccall.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/ccall.py ...' 2 | from angr.engines.vex.ccall import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/dirty.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/dirty.py ...' 2 | from angr.engines.vex.dirty import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/irop.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/irop.py ...' 2 | from angr.engines.vex.irop import * 3 | -------------------------------------------------------------------------------- /simuvex/plugins/inspect.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/plugins/inspect.py ...' 2 | from angr.state_plugins.inspect import * 3 | -------------------------------------------------------------------------------- /simuvex/plugins/plugin.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/plugins/plugin.py ...' 2 | from angr.state_plugins.plugin import * 3 | -------------------------------------------------------------------------------- /simuvex/plugins/scratch.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/plugins/scratch.py ...' 2 | from angr.state_plugins.scratch import * 3 | -------------------------------------------------------------------------------- /simuvex/plugins/solver.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/plugins/solver.py ...' 2 | from angr.state_plugins.solver import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/successors.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/successors.py ...' 2 | from angr.engines.successors import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/engine.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/engine.py ...' 2 | from angr.engines.vex.engine import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/unicorn_engine.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/unicorn_engine.py ...' 2 | from angr.engines.unicorn import * 3 | -------------------------------------------------------------------------------- /simuvex/plugins/uc_manager.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/plugins/uc_manager.py ...' 2 | from angr.state_plugins.uc_manager import * 3 | -------------------------------------------------------------------------------- /simuvex/s_action_object.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/s_action_object.py ...' 2 | from angr.state_plugins.sim_action_object import * 3 | -------------------------------------------------------------------------------- /simuvex/storage/paged_memory.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/storage/paged_memory.py ...' 2 | from angr.storage.paged_memory import * 3 | -------------------------------------------------------------------------------- /simuvex/plugins/fast_memory.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/plugins/fast_memory.py ...' 2 | from angr.state_plugins.fast_memory import * 3 | -------------------------------------------------------------------------------- /simuvex/storage/memory_object.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/storage/memory_object.py ...' 2 | from angr.storage.memory_object import * 3 | -------------------------------------------------------------------------------- /simuvex/plugins/abstract_memory.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/plugins/abstract_memory.py ...' 2 | from angr.state_plugins.abstract_memory import * 3 | -------------------------------------------------------------------------------- /simuvex/plugins/symbolic_memory.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/plugins/symbolic_memory.py ...' 2 | from angr.state_plugins.symbolic_memory import * 3 | -------------------------------------------------------------------------------- /simuvex/plugins/unicorn_engine.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/plugins/unicorn_engine.py ...' 2 | from angr.state_plugins.unicorn_engine import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/expressions/get.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/expressions/get.py ...' 2 | from angr.engines.vex.expressions.get import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/expressions/ite.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/expressions/ite.py ...' 2 | from angr.engines.vex.expressions.ite import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/expressions/op.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/expressions/op.py ...' 2 | from angr.engines.vex.expressions.op import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/statements/base.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/statements/base.py ...' 2 | from angr.engines.vex.statements.base import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/statements/cas.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/statements/cas.py ...' 2 | from angr.engines.vex.statements.cas import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/statements/exit.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/statements/exit.py ...' 2 | from angr.engines.vex.statements.exit import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/statements/llsc.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/statements/llsc.py ...' 2 | from angr.engines.vex.statements.llsc import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/statements/mbe.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/statements/mbe.py ...' 2 | from angr.engines.vex.statements.mbe import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/statements/noop.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/statements/noop.py ...' 2 | from angr.engines.vex.statements.noop import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/statements/put.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/statements/put.py ...' 2 | from angr.engines.vex.statements.put import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/statements/puti.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/statements/puti.py ...' 2 | from angr.engines.vex.statements.puti import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/expressions/base.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/expressions/base.py ...' 2 | from angr.engines.vex.expressions.base import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/expressions/geti.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/expressions/geti.py ...' 2 | from angr.engines.vex.expressions.geti import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/expressions/load.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/expressions/load.py ...' 2 | from angr.engines.vex.expressions.load import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/statements/dirty.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/statements/dirty.py ...' 2 | from angr.engines.vex.statements.dirty import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/statements/imark.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/statements/imark.py ...' 2 | from angr.engines.vex.statements.imark import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/statements/loadg.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/statements/loadg.py ...' 2 | from angr.engines.vex.statements.loadg import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/statements/store.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/statements/store.py ...' 2 | from angr.engines.vex.statements.store import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/statements/wrtmp.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/statements/wrtmp.py ...' 2 | from angr.engines.vex.statements.wrtmp import * 3 | -------------------------------------------------------------------------------- /simuvex/concretization_strategies/any.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/concretization_strategies/any.py ...' 2 | from angr.concretization_strategies.any import * 3 | -------------------------------------------------------------------------------- /simuvex/concretization_strategies/max.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/concretization_strategies/max.py ...' 2 | from angr.concretization_strategies.max import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/expressions/ccall.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/expressions/ccall.py ...' 2 | from angr.engines.vex.expressions.ccall import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/expressions/const.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/expressions/const.py ...' 2 | from angr.engines.vex.expressions.const import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/expressions/gsptr.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/expressions/gsptr.py ...' 2 | from angr.engines.vex.expressions.gsptr import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/expressions/rdtmp.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/expressions/rdtmp.py ...' 2 | from angr.engines.vex.expressions.rdtmp import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/expressions/vecret.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/expressions/vecret.py ...' 2 | from angr.engines.vex.expressions.vecret import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/statements/abihint.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/statements/abihint.py ...' 2 | from angr.engines.vex.statements.abihint import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/statements/storeg.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/statements/storeg.py ...' 2 | from angr.engines.vex.statements.storeg import * 3 | -------------------------------------------------------------------------------- /simuvex/concretization_strategies/range.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/concretization_strategies/range.py ...' 2 | from angr.concretization_strategies.range import * 3 | -------------------------------------------------------------------------------- /simuvex/concretization_strategies/single.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/concretization_strategies/single.py ...' 2 | from angr.concretization_strategies.single import * 3 | -------------------------------------------------------------------------------- /simuvex/concretization_strategies/nonzero.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/concretization_strategies/nonzero.py ...' 2 | from angr.concretization_strategies.nonzero import * 3 | -------------------------------------------------------------------------------- /simuvex/concretization_strategies/norepeats.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/concretization_strategies/norepeats.py ...' 2 | from angr.concretization_strategies.norepeats import * 3 | -------------------------------------------------------------------------------- /simuvex/concretization_strategies/solutions.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/concretization_strategies/solutions.py ...' 2 | from angr.concretization_strategies.solutions import * 3 | -------------------------------------------------------------------------------- /simuvex/engines/vex/expressions/unsupported.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/engines/vex/expressions/unsupported.py ...' 2 | from angr.engines.vex.expressions.unsupported import * 3 | -------------------------------------------------------------------------------- /simuvex/concretization_strategies/nonzero_range.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/concretization_strategies/nonzero_range.py ...' 2 | from angr.concretization_strategies.nonzero_range import * 3 | -------------------------------------------------------------------------------- /simuvex/concretization_strategies/norepeats_range.py: -------------------------------------------------------------------------------- 1 | print '... Importing simuvex/concretization_strategies/norepeats_range.py ...' 2 | from angr.concretization_strategies.norepeats_range import * 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SimuVEX 2 | 3 | SimuVEX used to be angr's state simulation engine. 4 | Since it made little sense to keep it separate, it has been merged into angr. 5 | This repository and package are here for compatibility. 6 | -------------------------------------------------------------------------------- /simuvex/storage/__init__.py: -------------------------------------------------------------------------------- 1 | from angr.storage.file import SimFile 2 | from angr.storage.memory import SimMemory 3 | from angr.storage.memory_object import SimMemoryObject 4 | from angr.storage.paged_memory import SimPagedMemory 5 | -------------------------------------------------------------------------------- /simuvex/engines/__init__.py: -------------------------------------------------------------------------------- 1 | from angr.engines.successors import SimSuccessors 2 | from angr.engines.engine import SimEngine 3 | from angr.engines.vex import SimEngineVEX 4 | from angr.engines.procedure import SimEngineProcedure 5 | from angr.engines.unicorn import SimEngineUnicorn 6 | -------------------------------------------------------------------------------- /simuvex/engines/vex/__init__.py: -------------------------------------------------------------------------------- 1 | from angr.engines.vex.expressions import SimIRExpr, translate_expr 2 | from angr.engines.vex.statements import SimIRStmt, translate_stmt 3 | from angr.engines.vex.engine import SimEngineVEX 4 | from angr.engines.vex import ccall 5 | from angr.errors import SimExpressionError, UnsupportedIRExprError 6 | from angr import sim_options as options 7 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | try: 2 | from setuptools import setup 3 | from setuptools import find_packages 4 | packages = find_packages() 5 | except ImportError: 6 | from distutils.core import setup 7 | import os 8 | packages = [x.strip('./').replace('/','.') for x in os.popen('find -name "__init__.py" | xargs -n1 dirname').read().strip().split('\n')] 9 | 10 | setup( 11 | name='simuvex', 12 | version='7.7.9.8', 13 | packages=packages, 14 | install_requires=[ 15 | 'angr', 16 | ], 17 | description="A compatibility layer for simuvex's removal.", 18 | url='https://github.com/angr/simuvex', 19 | ) 20 | -------------------------------------------------------------------------------- /simuvex/plugins/__init__.py: -------------------------------------------------------------------------------- 1 | from angr.state_plugins.plugin import * 2 | from angr.state_plugins.libc import * 3 | from angr.state_plugins.posix import * 4 | from angr.state_plugins.inspect import * 5 | from angr.state_plugins.solver import * 6 | from angr.state_plugins.symbolic_memory import SimSymbolicMemory 7 | from angr.state_plugins.abstract_memory import * 8 | from angr.state_plugins.fast_memory import * 9 | from angr.state_plugins.log import * 10 | from angr.state_plugins.scratch import * 11 | from angr.state_plugins.cgc import * 12 | from angr.state_plugins.gdb import * 13 | from angr.state_plugins.uc_manager import * 14 | from angr.state_plugins.unicorn_engine import Unicorn 15 | -------------------------------------------------------------------------------- /test.py: -------------------------------------------------------------------------------- 1 | import importlib 2 | import pkgutil 3 | import simuvex 4 | 5 | def import_submodules(package): 6 | if isinstance(package, str): 7 | package = importlib.import_module(package) 8 | results = {} 9 | for loader, name, is_pkg in pkgutil.walk_packages(package.__path__): 10 | full_name = package.__name__ + '.' + name 11 | print full_name 12 | if 'procedures' in full_name and '_' in full_name: 13 | continue 14 | results[full_name] = importlib.import_module(full_name) 15 | if is_pkg: 16 | results.update(import_submodules(full_name)) 17 | return results 18 | 19 | if __name__ == '__main__': 20 | import_submodules(simuvex) 21 | -------------------------------------------------------------------------------- /simuvex/concretization_strategies/__init__.py: -------------------------------------------------------------------------------- 1 | from angr.concretization_strategies import * 2 | from angr.concretization_strategies.any import SimConcretizationStrategyAny 3 | from angr.concretization_strategies.max import SimConcretizationStrategyMax 4 | from angr.concretization_strategies.nonzero import SimConcretizationStrategyNonzero 5 | from angr.concretization_strategies.nonzero_range import SimConcretizationStrategyNonzeroRange 6 | from angr.concretization_strategies.norepeats import SimConcretizationStrategyNorepeats 7 | from angr.concretization_strategies.norepeats_range import SimConcretizationStrategyNorepeatsRange 8 | from angr.concretization_strategies.range import SimConcretizationStrategyRange 9 | from angr.concretization_strategies.single import SimConcretizationStrategySingle 10 | from angr.concretization_strategies.solutions import SimConcretizationStrategySolutions 11 | -------------------------------------------------------------------------------- /simuvex/engines/vex/expressions/__init__.py: -------------------------------------------------------------------------------- 1 | from angr.engines.vex.expressions.base import SimIRExpr 2 | from angr.engines.vex.expressions.gsptr import SimIRExpr_GSPTR 3 | from angr.engines.vex.expressions.vecret import SimIRExpr_VECRET 4 | from angr.engines.vex.expressions.rdtmp import SimIRExpr_RdTmp 5 | from angr.engines.vex.expressions.get import SimIRExpr_Get 6 | from angr.engines.vex.expressions.load import SimIRExpr_Load 7 | from angr.engines.vex.expressions.op import SimIRExpr_Unop, SimIRExpr_Binop, SimIRExpr_Triop, SimIRExpr_Qop 8 | from angr.engines.vex.expressions.const import SimIRExpr_Const 9 | from angr.engines.vex.expressions.ccall import SimIRExpr_CCall 10 | from angr.engines.vex.expressions.ite import SimIRExpr_ITE 11 | from angr.engines.vex.expressions.geti import SimIRExpr_GetI 12 | from angr.engines.vex.expressions.unsupported import SimIRExpr_Unsupported 13 | 14 | from angr.errors import UnsupportedIRExprError 15 | from angr import sim_options as o 16 | -------------------------------------------------------------------------------- /simuvex/__init__.py: -------------------------------------------------------------------------------- 1 | from angr.sim_state import SimState 2 | from angr.sim_procedure import SimProcedure 3 | from angr.calling_conventions import SimCC, DefaultCC 4 | from angr.slicer import SimSlicer 5 | from angr.sim_type import define_struct, register_types, parse_defns, parse_types, parse_file, parse_type 6 | from angr.procedures import SimProcedures 7 | 8 | from angr import procedures 9 | from angr import storage 10 | from angr import concretization_strategies 11 | from angr import sim_options as o 12 | from angr import type_backend 13 | 14 | from angr.engines import SimEngine, SimSuccessors, SimEngineVEX, SimEngineProcedure, SimEngineUnicorn 15 | from angr.engines.vex.statements import SimIRStmt 16 | from angr.engines.vex.irop import operations, all_operations, unsupported as unsupported_operations, unclassified as unclassified_operations 17 | from angr.state_plugins import * 18 | from angr.errors import * 19 | from angr.state_plugins.sim_action import * 20 | from angr.sim_variable import * 21 | -------------------------------------------------------------------------------- /simuvex/engines/vex/statements/__init__.py: -------------------------------------------------------------------------------- 1 | from angr.engines.vex.statements.base import SimIRStmt 2 | from angr.engines.vex.statements.noop import SimIRStmt_NoOp 3 | from angr.engines.vex.statements.imark import SimIRStmt_IMark 4 | from angr.engines.vex.statements.abihint import SimIRStmt_AbiHint 5 | from angr.engines.vex.statements.wrtmp import SimIRStmt_WrTmp 6 | from angr.engines.vex.statements.put import SimIRStmt_Put 7 | from angr.engines.vex.statements.store import SimIRStmt_Store 8 | from angr.engines.vex.statements.mbe import SimIRStmt_MBE 9 | from angr.engines.vex.statements.dirty import SimIRStmt_Dirty 10 | from angr.engines.vex.statements.exit import SimIRStmt_Exit 11 | from angr.engines.vex.statements.cas import SimIRStmt_CAS 12 | from angr.engines.vex.statements.storeg import SimIRStmt_StoreG 13 | from angr.engines.vex.statements.loadg import SimIRStmt_LoadG 14 | from angr.engines.vex.statements.llsc import SimIRStmt_LLSC 15 | from angr.engines.vex.statements.puti import SimIRStmt_PutI 16 | 17 | from angr.errors import UnsupportedIRStmtError, UnsupportedDirtyError, SimStatementError 18 | from angr import sim_options as o 19 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, The Regents of the University of California 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 18 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 20 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 21 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 22 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | 25 | --------------------------------------------------------------------------------