From bf39cf44462d84d26c0408ba71ab8ce9701f1f0e Mon Sep 17 00:00:00 2001 From: Bernhard Mueller Date: Mon, 18 Sep 2017 11:45:04 +0700 Subject: [PATCH] Create README.md --- README.md | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 00000000..87373fd7 --- /dev/null +++ b/README.md @@ -0,0 +1,43 @@ +# Mythril + +Mythril is a simple assembler and disassembler for Ethereum VM bytecode. It is useful for low-level testing/fuzzing of EVM implementations. + +## Installation + +Clone the git repo: + +```bash +$ git clone https://github.com/b-mueller/mythril/ +$ pip install -r requirements.txt +``` + +## Usage + +To disassemble a piece of bytecode, pass it on the command line: + +```bash +$ ./mythril.py -d -c "0x606060405050" +PUSH1 0x60 +PUSH1 0x40 +POP +POP +``` + +### Modifying and re-assembling code + +-- TODO -- + +### Loading a contract from the Ethereum blockchain + + +You can also load code from an existing contract in the Ethereum blockchain. For this, you need to have a full node running, and the RPC debug interface must be activated. For example, when running `geth` you can do this as follows: + +```bash +$ geth --syncmode full --rpc --rpcapi eth,debug +``` + +To load contract code from your node, pass the TxID of the transaction that created the contract: + +```bash +./mythril.py -d -t 0xbf7518b40ab1242af74229512592f77736569157faffbf373cc1b4f5d499b967 +```