Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inkscope Fuzzer 0.0.1 #41

Merged
merged 35 commits into from
May 17, 2024
Merged

Inkscope Fuzzer 0.0.1 #41

merged 35 commits into from
May 17, 2024

Conversation

feliam
Copy link
Contributor

@feliam feliam commented May 17, 2024

  • Runs directly on Ink!
  • Detects properties
  • Use ABI to generate random input
  • Test for properties or traps
  • Minimize resultant traces for easy repro
  • Configuration in yaml
  • UX: TUI and Console
  • Examples and documentation provided

feliam and others added 30 commits January 11, 2024 16:41
* initial CI (empty)

* Linted
* feat: Minimal command line parsing with clap

* Move tests to their own module

---------

Co-authored-by: 0xLucca <0xlucca.dev@gmail.com>
Co-authored-by: Felipe Manzano <felipe.andres.manzano@gmail.com>
* Update CI workflow to include develop branch

* Make clippy happy
* reformatted

* Remove unused import

---------

Co-authored-by: 0xLucca <0xlucca.dev@gmail.com>
* Test hf input

* Clippy
* Move cli to its own module

* Fix test

* Move input and set_storage

* Move seal0_value_transferred

* Move seal_return

* Add new modules and types

* Create executor

* Delete unused traits
* Add drink

* Clean project
* Add Rayon

* Use modified drink version

* Load contract from each thread
* Planning and testing stuff

* Drinking a sip

* Initial attempt to encoded fuzzed generation

* Main loop

* So close, so far away

* Make it compile

---------

Co-authored-by: 0xLucca <0xlucca.dev@gmail.com>
Co-authored-by: 0xLucca <95830307+0xLucca@users.noreply.github.com>
* Initial cached fuzz loop
* Refactoring the Fuzzer Trace

* Refactor arguments-generator and test

* Extract cli to its own module

* Add scripts for making testing easier

* Fix session handling

* Move scripts to test-contracts

* Make clippy less angry

* Apply cargo fmt

---------

Co-authored-by: 0xLucca <0xlucca.dev@gmail.com>
* Return failed property traces

* Add print campaign result

* Make reverts rollback and continue

* Update BUG_VALUE constant to 15

* Non needed struct

* Update readme and delete unused tests

* Move max rounds and fail_fast to the config.yaml

* Merge fix moving failfast/max_rounds to config

* No deps in the CI

* Add fail_fast option to config.yaml

* Update drink dependency to specific revision

* Slightly better Output

* Fix the default config yaml

* Fix config default

* Update readme

* REmove some repetition in the readme

* Track Cargo.lock

---------

Co-authored-by: Felipe Manzano <felipe.andres.manzano@gmail.com>
* Add comments and fix check_properties fn

* Add tests

* Replace build.sh with build.py

* Add README to Coinfabrik Test Contracts

* Add test

* Apply cargo-fmt and refactor test_contract
* Added Generator unittests
* Add panic and revert handler, tests and cargo-fmt

* Refactor execute_message and execute_deploy

* Replace impl into to from

* Add comment
* Update CI

* Add CI workflows

* Add rust-src to workflow

* Make CI happy
* Add iterators_over_indexing test

* Add tempfile crate and fix test

* Update CI workflow names

* Add assert_violation test

* Update default accounts in order to not use account 0x0 as caller

*  Add zero_or_test_address test and add account_id generation
* WIP: migrate drink to ink_sandbox

* Finish migration

* Apply cargo-fmt

* Fix Cargo.toml dependencies

* Stop tracking Cargo.lock
* Deleted cargo locks

* Deleted internal .gitignore

* Adding lock to gitignore
* Add Dockerfiles

* Update README.md

* Update config handling

* Remove config.yaml from Dockerfiles

* Update docker run commands in readme

* Addded ALIAS to docker config

---------

Co-authored-by: Felipe Manzano <felipe.andres.manzano@gmail.com>
* wip: Add mdbook for documentation

* Add ityfuzz example

* Add writing properties section

* Update docker usage
Add mdbook CI
0xLucca and others added 5 commits April 19, 2024 10:46
* Remove old commented out code

* Wip - Step function

* Make it compile

* Add docker (#34)

* Add Dockerfiles

* Update README.md

* Update config handling

* Remove config.yaml from Dockerfiles

* Update docker run commands in readme

* Addded ALIAS to docker config

---------

Co-authored-by: Felipe Manzano <felipe.andres.manzano@gmail.com>

* Add md book (#35)

* wip: Add mdbook for documentation

* Add ityfuzz example

* Add writing properties section

* Update docker usage

* Create mdbook.yml

Add mdbook CI

* Fix book CI (#36)

* Remove clone() and add fork()

* Add a configurable initial seed value

* WIP optimize refactor

* execute_last rename refactor

* DeployOrMessage refactor

* CacheEntry refactor and cargo fmt

* WIP, better data structures for the cache and trace management

* Refactor TraceResult

* FailedTrace vec refactor

* Removed unhandled

* WIP: Optimize 1 working example

* WIP: Optimize 1 working example - formatted

* PAssing tests for traces with only a deploy message

* Remove unused fn

* Implement PartialOrd

* Make clippy happy

* better doc

* Better optimization code

* Cargo fmt

* Typo in comment

---------

Co-authored-by: Felipe Manzano <felipe.andres.manzano@gmail.com>
Added an Output api to control the UI from the engine
Added 2 implementations for the UI: TUI(using ratatui) and a simple console
* Added screenshot via web
* Update Readme and mdbook
* Add fuzzer exit
* Linting the clone_from

---------

Co-authored-by: 0xLucca <0xlucca.dev@gmail.com>
@feliam feliam added this to the 0.0.1 milestone May 17, 2024
@feliam feliam requested a review from 0xLucca May 17, 2024 16:41
@0xLucca 0xLucca changed the title Inkscope fuzzer 0.0.1 Inkscope Fuzzer 0.0.1 May 17, 2024
@0xLucca 0xLucca merged commit a3483e0 into main May 17, 2024
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants