Revert module loading behavoir

pull/716/head
Bernhard Mueller 6 years ago
parent f4712b4287
commit 5c49b488cc
  1. 18
      mythril/analysis/security.py
  2. 3
      mythril/interfaces/cli.py

@ -2,6 +2,7 @@ from collections import defaultdict
from ethereum.opcodes import opcodes
from mythril.analysis import modules
import pkgutil
import importlib.util
import logging
@ -28,18 +29,27 @@ def get_detection_module_hooks():
return dict(hook_dict)
def get_detection_modules(entrypoint, except_modules=()):
except_modules = list(except_modules) + ["base"]
def get_detection_modules(entrypoint, include_modules=()):
include_modules = list(include_modules)
_modules = []
if not len(include_modules):
for loader, name, _ in pkgutil.walk_packages(modules.__path__):
module = loader.find_module(name).load_module(name)
if (
module.__name__ not in except_modules
module.__name__ != "base"
and module.detector.entrypoint == entrypoint
):
_modules.append(module)
else:
for module_name in include_modules:
module = importlib.import_module(module_name, modules)
_modules.append(module)
logging.info("Found %s detection modules", len(_modules))
return _modules
@ -48,7 +58,7 @@ def fire_lasers(statespace, module_names=()):
logging.info("Starting analysis")
issues = []
for module in get_detection_modules(entrypoint="post", except_modules=module_names):
for module in get_detection_modules(entrypoint="post", include_modules=module_names):
logging.info("Executing " + module.detector.name)
issues += module.detector.execute(statespace)

@ -398,6 +398,7 @@ def main():
exit_with_error(args.outform, "Error saving graph: " + str(e))
else:
try:
report = mythril.fire_lasers(
strategy=args.strategy,
address=address,
@ -416,6 +417,8 @@ def main():
"markdown": report.as_markdown(),
}
print(outputs[args.outform])
except ModuleNotFoundError as e:
exit_with_error(args.outform, "Error loading analyis modules: " + format(e))
elif args.statespace_json:

Loading…
Cancel
Save