Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: about 1 month ago
JSON representation
Cairo/Starknet smart contract fuzzer
- Host: GitHub
- URL: https://github.com/FuzzingLabs/cairo-fuzzer
- Owner: FuzzingLabs
- License: agpl-3.0
- Created: 2022-11-23T10:11:13.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-03-01T22:31:16.000Z (10 months ago)
- Last Synced: 2024-08-04T01:11:28.630Z (5 months ago)
- Topics: cairo, cairo-lang, fuzzer, fuzzing, starknet
- Language: Rust
- Homepage:
- Size: 2.46 MB
- Stars: 114
- Watchers: 4
- Forks: 8
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-starknet-security - Cairo Fuzzer - Cairo Fuzzing tool. (Tools)
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.