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
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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.