Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/FuzzingLabs/cairo-fuzzer

Cairo/Starknet smart contract fuzzer
https://github.com/FuzzingLabs/cairo-fuzzer

cairo cairo-lang fuzzer fuzzing starknet

Last synced: 3 months ago
JSON representation

Cairo/Starknet smart contract fuzzer

Awesome Lists containing this project

README

        

# Cairo-Fuzzer -- Cairo Smart Contract Fuzzer

Release version 1.2
Developped and maintained by [@FuzzingLabs](https://github.com/FuzzingLabs)

## Description:

Cairo-fuzzer is a tool designed for smart contract developers to test the security. It can be used as an independent tool or as a library.

## Features:



- Run Starknet contract
- Replayer of fuzzing corpus
- Minimizer of fuzzing corpus
- Load old corpus
- Handle multiple arguments
- Workspace architecture
- Import dictionnary
- Use Cairo-fuzzer as a library

## Usage:
```
cargo run --release -- --cores 10 --contract ./tests1.0/fuzzinglabs.json --casm ./tests1.0/fuzzinglabs.casm --function "Fuzz_symbolic_execution"

```

For more usage information, follow our [tutorial](docs/TUTO101.md)

## CMDLINE (--help):

```
Usage: cairo-fuzzer [OPTIONS]

Options:
--cores Set the number of threads to run [default: 1]
--contract Set the path of the JSON artifact to load [default: ]
--casm Set the path of the JSON CASM artifact to load [default: ]
--function Set the function to fuzz [default: ]
--workspace Workspace of the fuzzer [default: fuzzer_workspace]
--inputfolder Path to the inputs folder to load [default: ]
--crashfolder Path to the crashes folder to load [default: ]
--inputfile Path to the inputs file to load [default: ]
--crashfile Path to the crashes file to load [default: ]
--dict Path to the dictionnary file to load [default: ]
--logs Enable fuzzer logs in file
--seed Set a custom seed (only applicable for 1 core run)
--run-time Number of seconds this fuzzing session will last
--config Load config file
--replay Replay the corpus folder
--minimizer Minimize Corpora
--proptesting Property Testing
--analyze Dump functions prototypes
--iter Iteration Number [default: -1]
-h, --help Print help
```

# F.A.Q

## How to find a Cairo/Starknet compilation artifact (json file)?

Cairo-Fuzzer supports starknet compilation artifact (json and casm files) generated after compilation using `starknet-compile` and `starknet-sierra-compile`.
Cairo-Fuzzer does not support Cairo2.0 and pure cairo contract.

## How to run the tests?

```
cargo test
```

# License

Cairo-Fuzzer is licensed and distributed under the AGPLv3 license. [Contact us](mailto:[email protected]) if you're looking for an exception to the terms.