Metadata-Version: 2.1
Name: mythril
Version: 0.23.12
Summary: Security analysis tool for Ethereum smart contracts
Home-page: https://github.com/ConsenSys/mythril
Author: ConsenSys Dilligence
License: MIT
Description: 
        # Mythril
        
        <p align="center">
        	<img src="/static/mythril_new.png" height="320px"/>
        </p>
        
        [![Discord](https://img.shields.io/discord/481002907366588416.svg)](https://discord.gg/E3YrVtG)
        [![PyPI](https://badge.fury.io/py/mythril.svg)](https://pypi.python.org/pypi/mythril)
        [![Read the Docs](https://readthedocs.org/projects/mythril-classic/badge/?version=master)](https://mythril-classic.readthedocs.io/en/master/)
        ![Master Build Status](https://img.shields.io/circleci/build/github/ConsenSys/mythril.svg?token=97124ecfaee54366859cae98b5dafc0714325f8b)
        [![Sonarcloud - Maintainability](https://sonarcloud.io/api/project_badges/measure?project=mythril&metric=sqale_rating)](https://sonarcloud.io/dashboard?id=mythril)
        [![Pypi Installs](https://pepy.tech/badge/mythril)](https://pepy.tech/project/mythril)
        [![DockerHub Pulls](https://img.shields.io/docker/pulls/mythril/myth.svg)](https://cloud.docker.com/u/mythril/repository/docker/mythril/myth)
        
        Mythril is a security analysis tool for EVM bytecode. It detects security vulnerabilities in smart contracts built for Ethereum, Hedera, Quorum, Vechain, Roostock, Tron and other EVM-compatible blockchains. It uses symbolic execution, SMT solving and taint analysis to detect a variety of security vulnerabilities. It's also used (in combination with other tools and techniques) in the [MythX](https://mythx.io) security analysis platform.
        
        If you are a smart contract developer, we recommend using [MythX tools](https://github.com/b-mueller/awesome-mythx-smart-contract-security-tools) which are optimized for usability and cover a wider range of security issues.
        
        Whether you want to contribute, need support, or want to learn what we have cooking for the future, our [Discord server](https://discord.gg/E3YrVtG) will serve your needs.
        
        ## Installation and setup
        
        Get it with [Docker](https://www.docker.com):
        
        ```bash
        $ docker pull mythril/myth
        ```
        
        Install from Pypi (Python 3.6-3.9):
        
        ```bash
        $ pip3 install mythril
        ```
        
        See the [docs](https://mythril-classic.readthedocs.io/en/master/installation.html) for more detailed instructions. 
        
        ## Usage
        
        Run:
        
        ```
        $ myth analyze <solidity-file>
        ```
        
        Or:
        
        ```
        $ myth analyze -a <contract-address>
        ```
        
        Specify the maximum number of transaction to explore with `-t <number>`. You can also set a timeout with `--execution-timeout <seconds>`.
        
        Here is an example of running Mythril on the file `killbilly.sol` which is in the `solidity_examples` directory for `3` transactions:
        
        ```
        > myth a killbilly.sol -t 3
        ==== Unprotected Selfdestruct ====
        SWC ID: 106
        Severity: High
        Contract: KillBilly
        Function name: commencekilling()
        PC address: 354
        Estimated Gas Usage: 974 - 1399
        Any sender can cause the contract to self-destruct.
        Any sender can trigger execution of the SELFDESTRUCT instruction to destroy this contract account and withdraw its balance to an arbitrary address. Review the transaction trace generated for this issue and make sure that appropriate security controls are in place to prevent unrestricted access.
        --------------------
        In file: killbilly.sol:22
        
        selfdestruct(msg.sender)
        
        --------------------
        Initial State:
        
        Account: [CREATOR], balance: 0x2, nonce:0, storage:{}
        Account: [ATTACKER], balance: 0x1001, nonce:0, storage:{}
        
        Transaction Sequence:
        
        Caller: [CREATOR], calldata: , decoded_data: , value: 0x0
        Caller: [ATTACKER], function: killerize(address), txdata: 0x9fa299cc000000000000000000000000deadbeefdeadbeefdeadbeefdeadbeefdeadbeef, decoded_data: ('0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef',), value: 0x0
        Caller: [ATTACKER], function: activatekillability(), txdata: 0x84057065, value: 0x0
        Caller: [ATTACKER], function: commencekilling(), txdata: 0x7c11da20, value: 0x0
        
        ```
        
        
        Instructions for using Mythril are found on the [docs](https://mythril-classic.readthedocs.io/en/master/). 
        
        For support or general discussions please join the Mythril community on [Discord](https://discord.gg/E3YrVtG).
        
        ## Building the Documentation
        Mythril's documentation is contained in the `docs` folder and is published to [Read the Docs](https://mythril-classic.readthedocs.io/en/develop/). It is based on Sphinx and can be built using the Makefile contained in the subdirectory:
        
        ```
        cd docs
        make html
        ```
        
        This will create a `build` output directory containing the HTML output. Alternatively, PDF documentation can be built with `make latexpdf`. The available output format options can be seen with `make help`.
        
        ## Vulnerability Remediation
        
        Visit the [Smart Contract Vulnerability Classification Registry](https://swcregistry.io/) to find detailed information and remediation guidance for the vulnerabilities reported.
        
Keywords: hacking disassembler security ethereum
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Software Development :: Disassemblers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Requires-Python: >=3.6.0
Description-Content-Type: text/markdown
