Skip to main content

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.

$ cd <ithildin-root>
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip3 install -r requirements.txt

Installing Mythril Globally

$ pip3 install -r requirements.txt

Metadata

Release files for ithildin 0.2.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ithildin 0.2.7
File Size Uploaded Provenance Actions
ithildin-0.2.7.tar.gz 27.0 kB Without provenance Details for ithildin-0.2.7.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ithildin 0.2.7
File Interpreter ABI Platform Actions
ithildin-0.2.7-py3-none-any.whl Python 3 none any Details for ithildin-0.2.7-py3-none-any.whl

Total release size: 63.5 kB

Release files / ithildin-0.2.7.tar.gz

Download URL ithildin-0.2.7.tar.gz
Size 27.0 kB
Tags Source
SHA-256 checksum
How to use checksums
3cd12c0d50cae6d6641f52c8731cb8fbed2524722cfa95118fc6660cd08b4127
BLAKE2b-256 checksum
How to use checksums
da68ac2874a74ddb1919abdff2b37fda1c89a63f0f26364e1e75d8e3365d3054
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / ithildin-0.2.7-py3-none-any.whl

Download URL ithildin-0.2.7-py3-none-any.whl
Size 36.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f4a0f01d3544210415ce9ab8aa65a0c2296907107f6b0d8a85e3823ea2de1977
BLAKE2b-256 checksum
How to use checksums
c1c0c193a963dc256fa9db47b463a0a2cd6452ff11d4ca87918878dd6fc8d964
Upload date
Uploaded using Trusted Publishing?
What is 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

Security for ithildin 0.2.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page