Skip to main content

Semantic analyzer of EVM bytecode based on Mythril

Project description

Ithildin

Ithildin Logo

GitHub PyPI PyPI - Status

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ithildin-0.2.7.tar.gz (27.0 kB view details)

Uploaded Source

Built Distribution

ithildin-0.2.7-py3-none-any.whl (36.5 kB view details)

Uploaded Python 3

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

Hashes for ithildin-0.2.7.tar.gz
Algorithm Hash digest
SHA256 3cd12c0d50cae6d6641f52c8731cb8fbed2524722cfa95118fc6660cd08b4127
MD5 1f7aaf6015c1cf32bb1a930d98f868d0
BLAKE2b-256 da68ac2874a74ddb1919abdff2b37fda1c89a63f0f26364e1e75d8e3365d3054

See more details on using hashes here.

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

Hashes for ithildin-0.2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 f4a0f01d3544210415ce9ab8aa65a0c2296907107f6b0d8a85e3823ea2de1977
MD5 4c4f6f96f40719a5583c2a38c1bb0c73
BLAKE2b-256 c1c0c193a963dc256fa9db47b463a0a2cd6452ff11d4ca87918878dd6fc8d964

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page