Semantic analyzer of EVM bytecode based on Mythril
Project description
Ithildin
Ithildin was a type of specially crafted Mithril that only the most experienced craftsmen of the Noldor could learn how to make and pass on to others.
Ithildin is a semantic analysis tool for EVM bytecode based on Mythril. By using symbolic execution and taint analysis, it aims at detecting functions that are restricted by authentication patterns, and to extract administrator addresses whenever possible.
Check out the wiki for a list of currently working patterns and some that are planned to be implemented soon.
The Aniron font is Copyright © Pete Klassen, 2004. All rights Reserved.
Requirements
- Python 3.6+
Installation
$ pip3 install ithildin
Executing
Ithildin can currently analyze contracts provided in one of the following formats.
Run ithil --help
to see all arguments that the program accepts.
Deployed Contracts
The following command analyzes the contract bytecode at the given target address.
You'll have to supply the RPC endpoint using the --rpc
argument, unless you are using geth, in which case the default endpoint http://localhost:8545
is used.
Note: Infura secrets are currently not supported.
# Using a local JSON RPC provider
$ ithil analyze --address 0x3D8e04CC42F61624e1B193C51f27D373A9244D9b --rpc localhost:7545
# Using an Infura provider
$ ithil analyze --address 0x868326efca6e89f75a76d141167759f1ad10854c --rpc https://mainnet.infura.io/v3/<project-id>
Solidity Contracts
This command will use the solc compiler that is currently installed on your system if --solc
is not specified.
Older compilers can be downloaded from the ethereum/solc-bin repository (make sure you make them executable).
# Using solc version v0.7.6
$ ithil analyze --sol Example.sol --solc solc-linux-amd64-v0.7.6+commit.7338295f
Creation Bytecode Files
Provide a file containing the EVM (creation) bytecode in one line.
$ ithil analyze --bin Example.bin
Development Setup
Install all the requirements inside a virtual environment or globally.
Installing Mythril Inside a Virtual Environment (Recommended)
$ cd <ithildin-root>
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip3 install -r requirements.txt
Installing Mythril Globally
$ pip3 install -r requirements.txt
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ithildin-0.2.7.tar.gz
.
File metadata
- Download URL: ithildin-0.2.7.tar.gz
- Upload date:
- Size: 27.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3cd12c0d50cae6d6641f52c8731cb8fbed2524722cfa95118fc6660cd08b4127 |
|
MD5 | 1f7aaf6015c1cf32bb1a930d98f868d0 |
|
BLAKE2b-256 | da68ac2874a74ddb1919abdff2b37fda1c89a63f0f26364e1e75d8e3365d3054 |
File details
Details for the file ithildin-0.2.7-py3-none-any.whl
.
File metadata
- Download URL: ithildin-0.2.7-py3-none-any.whl
- Upload date:
- Size: 36.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f4a0f01d3544210415ce9ab8aa65a0c2296907107f6b0d8a85e3823ea2de1977 |
|
MD5 | 4c4f6f96f40719a5583c2a38c1bb0c73 |
|
BLAKE2b-256 | c1c0c193a963dc256fa9db47b463a0a2cd6452ff11d4ca87918878dd6fc8d964 |