Heimdall is an advanced EVM smart contract toolkit specializing in bytecode analysis. Heimdall is written in Rust and is designed to be fast, modular, and more accurate than other existing tools.
Currently, Heimdall supports the following operations:
- EVM Bytecode Disassembly
- EVM Smart-Contract Control Flow Graph Generation
- EVM Smart-Contract Decompilation
- Smart-Contract Storage Dumping
- Transaction Calldata Decoding
Ensure that Rust & Cargo are installed:
curl https://sh.rustup.rs -sSf | sh
Heimdall's update and installation manager, bifrost
, can be installed using the following command:
curl -L http://get.heimdall.rs | bash
If you want to manually install bifrost, you can download the latest release from here.
Once you have installed bifrost
, you can use it to install Heimdall using the following command from a new terminal:
bifrost
After compilation, the heimdall
command will be available to use from a new terminal. For advanced options, see the bifrost documentation.
Having trouble? Check out the Troubleshooting section in the wiki.
Documentation for all of heimdall-rs is available in the wiki.
Examples for heimdall-rs modules are available in the wiki.
If you'd like to contribute to Heimdall or add a module, please open a pull-request with your changes, as well as detailed information on what is changed, added, or improved.
For more detailed information, see the contributing guide.
If you've found an issue or have a question, please open an issue here. All issues must follow their respective templates.
- Jonathan Becker <jonathan@jbecker.dev>
A list of all contributors can be found in the wiki.