Comments (5)
Just found the answer to my question. I am leaving it here in case anyone is also stuck on this. LibFuzzer can take directory of corpus as an argument. So if you run:
mkdir corpus; while true; do python3 fuzzer.py corpus; done
It will run Atheris with this corpus directory. It will keep putting new corpus inside this directory. Whenever it finds a crash, it will resume from fuzzing from the previous point.
For this to work, you must pass the arguments to LibFuzzer using:
atheris.Setup(sys.argv, TestOneInput)
from atheris.
I am also interested in how to keep the crashes to a directory not the working directory.
from atheris.
Maybe you want to look at exact_artifact_path
argument in LibFuzzer docs.
from atheris.
Atheris accepts most libFuzzer flags. The libFuzzer process will always exit on failure, but you can run multiple jobs simultaneously with -jobs=N to run multiple fuzz jobs simultaneously. The main process will only exit once they all fail.
If that isn't what you're looking for, you can easily restart on failure:
while true; do python3 fuzzer.py; done
from atheris.
so when doing:
while true; do python3 fuzzer.py; done
Does Atheris restart the fuzzing from the beginning or it resumes from the previous point, especially from the coverage/mutation point of view? If it restarts from the beginning, how can we resume the fuzzing? Sorry I am not familiar with the LibFuzzer way of doing it.
from atheris.
Related Issues (20)
- "Permission denied" when using -merge=1
- Preloaded libFuzzer doesn't allow to use custom mutator. HOT 1
- Wrong crash line in new python version
- Atheris 2.2.2 fails to instrument a while loop in Python 3.11.0 HOT 1
- Support RegisterPostProcessor in lib protofuf mutator
- Make use of Github Actions
- How could I save crash log? HOT 6
- User exit callback feature? HOT 2
- Integrate Slipcover to Atheris HOT 2
- Cannot Install Atheris using PIP on Ubuntu, Alpine, ArchLinux and Windows HOT 6
- Issue in installing package atheris-libprotobuf-mutator on python base image
- Determinism HOT 1
- Atheris in unittests?
- Why are Instance methods not instrumented
- Order of calls to LF messes output
- Atheris fails to build on macOS 14.2.1 with Homebrew clang 17.0.6 HOT 1
- Create LeakSanitizer suppression rules to run with detect_leaks=1
- Fail to install on Ubuntu 24.04 HOT 2
- Type hints HOT 2
- `atheris.Fuzz` segfaults when using `atheris.instrument_all` with `@singledispatch` on 3.11.9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from atheris.