Bernhard Mueller
f54afd889c
|
7 years ago | |
---|---|---|
ether | 7 years ago | |
rpc | 7 years ago | |
.gitignore | 7 years ago | |
LICENSE | 7 years ago | |
README.md | 7 years ago | |
contractstorage.py | 7 years ago | |
mythril | 7 years ago | |
requirements.txt | 7 years ago | |
setup.py | 7 years ago |
README.md
Mythril
Mythril is a bug hunting tool and framework for the Ethereum blockchain.
Installation and setup
Install from Pypi:
$ pip install mythril
Or, clone the GitHub repo to install the newest master branch:
$ git clone https://github.com/b-mueller/mythril/
$ cd mythril
$ python setup.py install
You also need a go-ethereum node that is synced with the network (not that Mythril uses non-standard RPC APIs offered by go-ethereum, so other clients likely won't work). Start the node as follows:
$ geth --rpc --rpcapi eth,admin,debug --syncmode fast
Database initialization
Mythril builds its own contract database to enable quick search for opcode sequences, function calls, et cetera. The initial sync is done over RPC. Unfortunately, this process is slow - however, you don't need to sync the whole blockchain to start working. If you abort the syncing process with ctrl+c
, it will auto-resume the next time you run the --init-db
command.
$ ./mythril --init-db
Starting synchronization from latest block: 4323706
Processing block 4323000, 3 individual contracts in database
(...)
Command line usage
-- TODO --
I'm currently rewriting the whole thing and the docs need to be updated.
Credit
JSON RPC library is adapted from ethjsonrpc (it doesn't seem to be maintained anymore, and I needed to make some changes to it).