Инструмент безопасности Ethereum-контрактов от ConsenSys. Использует symbolic execution, concolic analysis и SMT-solving для обнаружения reentrancy, integer overflow, arbitrary jump, delegatecall injection. Работает с EVM-байткодом без исходников.
pip install mythril # Анализ по адресу контракта в mainnet myth analyze --address 0xABCD... --infura-id YOUR_ID # Анализ файла myth analyze contract.sol

Mythril — это инструмент анализа безопасности на основе символического исполнения для байт-кода EVM. Он обнаруживает уязвимости в смарт-контрактах, построенных для Ethereum и других совместимых с EVM блокчейнов.
Независимо от того, хотите ли вы внести свой вклад, нуждаетесь в поддержке или хотите узнать, что мы готовим на будущее, вы можете заглянуть в канал diligence-mythx на Discord-сервере ConsenSys.
Получите его с помощью Docker:
$ docker pull mythril/myth
Установите из Pypi (Python 3.7-3.10):
$ pip3 install mythril
Используйте его через хук pre-commit (замените $GIT_TAG на реальный тег):
- repo: https://github.com/Consensys/mythril
rev: $GIT_TAG
hooks:
- id: mythril
Дополнительно установите args: [disassemble] или args: [read-storage], чтобы использовать команду, отличную от analyze.
Более подробные инструкции смотрите в документации.
Запустите:
$ myth analyze <solidity-file>
Или:
$ myth analyze -a <contract-address>
Укажите максимальное количество транзакций для исследования с помощью -t <число>. Вы также можете установить тайм-аут с помощью --execution-timeout <секунды>.
Вот пример запуска Mythril над файлом killbilly.sol, который находится в директории solidity_examples, для 3 транзакций:
<<>
Инструкции по использованию Mythril находятся в документации.
Для получения поддержки или проведения общих обсуждений, пожалуйста, загляните в канал diligence-mythx на Discord-сервере ConsenSys.
Документация Mythril находится в папке docs и публикуется на Read the Docs. Она основана на Sphinx и может быть собрана с помощью Makefile, находящегося в подкаталоге:
<<>
Это создаст выходную директорию build, содержащую HTML-вывод. Альтернативно, PDF-документация может быть собрана с помощью make latexpdf. Доступные форматы вывода можно посмотреть, выполнив make help.
Посетите Реестр классификации уязвимостей смарт-контрактов, чтобы найти подробную информацию и рекомендации по исправлению обнаруженных уязвимостей.