Skip to content

Tools use cases (Work in progress)

Ðavid edited this page Nov 9, 2023 · 3 revisions

Index

0. Pre audit phase

Here we would like to get the source code, compile it, analyze the bytecode to get the solidity code, etc

Heimdall

Type

Disassembler and decompiler

Use Cases Recommendations

Bytecode analysis, reverse engineering of smart contracts

Tool Description

Heimdall is used to disassemble and decompile Ethereum bytecode back into readable Solidity-like code, enabling analysis and review of compiled contracts where the source is not available.

Command to Launch It

heimdall <bytecode>

1. Chilling phase

This is what I consider the "I have no idea what it's inside the code, I just don't care. This phase is generally after compiling and basic setup

Mythril

Type

Symbolic execution tool

Use Cases Recommendations

In-depth security reviews, complex vulnerability detection

Tool Description

Mythril leverages symbolic execution to simulate all possible execution outcomes in the Ethereum bytecode to find security vulnerabilities. It is useful for detecting sophisticated smart contract exploits that may not be immediately evident.

Command to Launch It

myth analyze --solc-json <input.json>

Slither

Type

Static analysis tool

Use Cases Recommendations

Quick code reviews, continuous integration, common vulnerability identification

Tool Description

Slither scans Solidity code for security vulnerabilities, bad practices, and code optimization. Its integration with continuous integration systems makes it an essential tool for automated and preventive code review processes.

Command to Launch It

slither <contract.sol>

Picode's Code4rena 4nalyz3r

Type

Static analysis tool

Use Cases Recommendations

Quick code reviews, continuous integration, common vulnerability identification

Tool Description

4nalyz3r is a static analyzer that would help finding basic vulnerabilities and optimizations.

Command to Launch It

analyze4 src

Ok let's test it

Pyrometer

Type

Valid range analyzer

Use Cases Recommendations

Prevention of numerical bugs, range analysis

Tool Description

Pyrometer focuses on the analysis of numerical ranges within smart contract code to prevent overflows and underflows, which can lead to critical security issues.

Command to Launch It

pyrometer check <contract.sol>

Echidna

Medusa

Forge fuzzing

Halmos

Type

Formal verification tool

Use Cases Recommendations

Mathematically rigorous smart contract verification, advanced security assurance

Tool Description

Halmos provides formal verification for smart contracts, which involves mathematically proving the correctness of contract logic against a formal specification. It has an amazing integration within Foundry projects and would provide an extra verification to the system after unit tests and fuzzing tests.

Command to Launch It

halmos

Certora Prover

Type

Formal verification tool

Use Cases Recommendations

Contract verification against formal specifications, high-assurance code

Tool Description

Certora Prover uses formal methods to verify smart contracts against user-provided specifications. It aims to prove that contracts meet their specified requirements, preventing a wide range of bugs and vulnerabilities.

Command to Launch It

certoraRun <contract.sol>:<contract>

Writting PoCs and issues

Bug bounty time with QuickPoc

Issue writer

Spearbit report generator