Mythril是以太坊EVM字节码的安全分析工具。它检测以太坊、Hedera、Quorum、Vechain、Roostock、Tron和其他兼容evm的区块链构建的智能合约中的安全漏洞。它使用符号执行、SMT方案来分析检测智能合约代码中的各种安全漏洞。
安装
通过 Docker 获取:
$ docker pull mythril/myth
从 Pypi 安装:
$ pip3 install mythril
目前,Mythril 支持 MacOS 和 Ubuntu,不支持 Windows。
用法
Mythril 支持 Solidity 源代码和合约地址的检测。
运行:
$ myth analyze <solidity-file>
或者:
$ myth analyze -a <contract-address>
实践
本文介绍在 Ubuntu 操作系统环境下的工具安装和检测分析过程。
Docker 环境下安装
经笔者实践,采用非 Docker 方式安装时,安装过程报错。 所以本检测分析过程基于 Docker 环境。
所有的 Mythril 版本,从 v0.18.3 开始,都以 mythrl/myth 的名称作为 Docker images 发布到 Docker Hub。
安装 Docker CE 后,通过以下命令 pull 最新版本的 mythril/myth:
$ docker pull mythril/myth
使用 docker 运行mythrl/myth,就像你使用 myth 命令一样。
查看 mythril/myth 帮助的命令如下:
$ docker run mythril/myth --help
检测分析 Solidity 源代码的命令如下:
$ docker run -v $(pwd):/tmp mythril/myth analyze /tmp/contrac