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

Introduce libafl-fuzz #2362

Merged
merged 48 commits into from
Jul 16, 2024
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
d5ab811
Introduce libafl-fuzz
R9295 Jul 3, 2024
3e9f2c3
fix corpus file path
R9295 Jul 3, 2024
a3fd1de
simplify SeedFeedback
R9295 Jul 3, 2024
e55e67d
Merge branch 'main' into feature/libafl-fuzz-the-future-is-now
tokatoka Jul 4, 2024
5e486ef
fix incorrect comment
R9295 Jul 6, 2024
fb8b7df
add clap::ValueEnum to PowerSchedule as an optional derive if clap is…
R9295 Jul 6, 2024
755f062
UnixShMemProvider replaced with StdShMemProvider for libafl-fuzz
R9295 Jul 6, 2024
a8b13c6
remove io_error_more feature constraint
R9295 Jul 6, 2024
e283aef
libafl-fuzz: make Ok(()) unreachable in CentralizedLauncher
R9295 Jul 6, 2024
a95d663
libafl-fuzz: make harness_input_stdin to harness_input_type with &'st…
R9295 Jul 6, 2024
a7a41fd
libafl-fuzz: move each feedback to it's own file
R9295 Jul 6, 2024
4297149
make run_fuzzer_with_stage into a function.
R9295 Jul 6, 2024
5d9902a
remove unecessary clone
R9295 Jul 6, 2024
eb850cf
libafl-fuzz: cleanup AFLStatsStage
R9295 Jul 6, 2024
0c46399
move peak_rss_mb to libafl_bolts
R9295 Jul 6, 2024
29c1bcb
parse envs by hand
R9295 Jul 9, 2024
7122256
add sensible defaults for map size and broker port
R9295 Jul 9, 2024
b0af856
fix test.sh and corpus_id padding
R9295 Jul 9, 2024
3b49771
add Makefile.toml
R9295 Jul 10, 2024
d6d84da
Merge branch 'main' into feature/libafl-fuzz-the-future-is-now
R9295 Jul 10, 2024
9ff3b8f
libafl-fuzz update test suite
R9295 Jul 10, 2024
84ffeba
libafl-fuzz: clippy
R9295 Jul 10, 2024
43c61a4
rename peak_rss_mb to peak_rss_mb_children
R9295 Jul 10, 2024
d1e1622
remove minor version constraint for clap
R9295 Jul 10, 2024
c0f283c
libafl-fuzz: fix ELF check and instrumentation check in check_binary
R9295 Jul 10, 2024
b070f08
libafl-fuzz: improve Makefile.toml
R9295 Jul 10, 2024
288995c
simplify fuzzer and cleanup typos
R9295 Jul 12, 2024
fbd64af
libafl-fuzz: load corpus entries in a multicore fashion
R9295 Jul 12, 2024
f38fda5
libafl-fuzz: create output dir if not exists (non-racey)
R9295 Jul 12, 2024
a7d8547
Merge branch 'main' into feature/libafl-fuzz-the-future-is-now
R9295 Jul 12, 2024
2aff5ec
Merge branch 'main' into feature/libafl-fuzz-the-future-is-now
domenukk Jul 12, 2024
7b9ed40
libafl-fuzz: add sequential scheduling support
R9295 Jul 14, 2024
22fd014
rename peak_rss_mb_children to peak_rss_mb_child_processes
R9295 Jul 14, 2024
a1b0ff8
fix race condition in SyncFromDiskStage, add interval based checking …
R9295 Jul 14, 2024
405aff2
update README
R9295 Jul 14, 2024
1a69483
implement AflScheduler for QueueScheduler.
R9295 Jul 15, 2024
1d278bc
libafl-fuzz: remove dependecy on SchedulerMetadata for AflStatsStage
R9295 Jul 15, 2024
a142afa
clippy
R9295 Jul 15, 2024
09ebcce
remove queue_cycles from AflScheduler into int's own trait.
R9295 Jul 15, 2024
6499eb5
clippy
R9295 Jul 15, 2024
445f479
libafl-fuzz: disable cmplog check in CI for now
R9295 Jul 15, 2024
0939df6
Merge branch 'main' into feature/libafl-fuzz-the-future-is-now
R9295 Jul 15, 2024
020fccd
add missing constraints for libafl_qemu executor
R9295 Jul 15, 2024
c16645e
clippy
R9295 Jul 15, 2024
3ca79fe
libafl-fuzz: improve Makefile
R9295 Jul 15, 2024
33a167d
libafl-fuzz: misc
R9295 Jul 15, 2024
b58e23d
misc typos, beautify
R9295 Jul 15, 2024
d9ca434
Merge branch 'main' into feature/libafl-fuzz-the-future-is-now
R9295 Jul 15, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions fuzzers/libafl-fuzz/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
[package]
name = "libafl-fuzz"
version = "0.0.1"
edition = "2021"

[dependencies]
clap = { version = "4.5.4", features = ["derive", "env"] }
env_logger = "0.11.3"
libafl = { path = "../../libafl", features = ["std", "derive", "track_hit_feedbacks"]}
libafl_bolts = { path = "../../libafl_bolts", features = ["std"]}
libafl_targets = { path = "../../libafl_targets"}
memmap2 = "0.9.4"
nix = {version = "0.29", features = ["fs"]}
regex = "1.10.5"
serde = {version = "1.0.117", features = ["derive"]}

[features]
default = ["track_hit_feedbacks"]
track_hit_feedbacks = ["libafl/track_hit_feedbacks"]
70 changes: 70 additions & 0 deletions fuzzers/libafl-fuzz/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
Rewrite of afl-fuzz in Rust.

# TODO
- [x] AFL_HANG_TMOUT
- [x] AFL_NO_AUTODICT
- [x] AFL_MAP_SIZE
- [x] AFL_KILL_SIGNAL
- [x] AFL_BENCH_JUST_ONE
- [x] AFL_DEBUG_CHILD
- [x] AFL_PERSISTENT
- [x] AFL_IGNORE_TIMEOUTS
- [x] AFL_EXIT_ON_SEED_ISSUES
- [x] AFL_BENCH_UNTIL_CRASH
- [x] AFL_TMPDIR
- [x] AFL_CRASH_EXITCODE
- [x] AFL_TARGET_ENV
- [x] AFL_IGNORE_SEED_PROBLEMS (renamed to AFL_IGNORE_SEED_ISSUES)
- [x] AFL_CRASH_EXITCODE
- [x] AFL_INPUT_LEN_MIN
- [x] AFL_INPUT_LEN_MAX
- [x] AFL_CYCLE_SCHEDULES
- [x] AFL_CMPLOG_ONLY_NEW
- [x] AFL_PRELOAD
- [x] AFL_SKIP_BIN_CHECK
- [x] AFL_NO_STARTUP_CALIBRATION (this is default in libafl, not sure if this needs to be changed?)
- [x] AFL_FUZZER_STATS_UPDATE_INTERVAL
- [x] AFL_DEFER_FORKSRV
- [x] AFL_NO_WARN_INSTABILITY (we don't warn anyways, we should maybe?)
- [ ] AFL_SYNC_TIME
- [ ] AFL_FINAL_SYNC
- [ ] AFL_AUTORESUME
- [ ] AFL_CRASHING_SEEDS_AS_NEW_CRASH
- [ ] AFL_IGNORE_UNKNOWN_ENVS
- [ ] AFL_NO_UI
- [ ] AFL_PIZZA_MODE :)
- [ ] AFL_EXIT_WHEN_DONE
- [ ] AFL_EXIT_ON_TIME
- [ ] AFL_NO_AFFINITY
- [ ] AFL_FORKSERVER_KILL_SIGNAL
- [ ] AFL_EXPAND_HAVOC_NOW
- [ ] AFL_NO_FORKSRV
- [ ] AFL_FORKSRV_INIT_TMOUT
- [ ] AFL_TRY_AFFINITY
- [ ] AFL_FAST_CAL
- [ ] AFL_NO_CRASH_README
- [ ] AFL_KEEP_TIMEOUTS
- [ ] AFL_PERSISTENT_RECORD
- [ ] AFL_TESTCACHE_SIZE
- [ ] AFL_NO_ARITH
- [ ] AFL_DISABLE_TRIM
- [ ] AFL_MAX_DET_EXTRAS
- [ ] AFL_IGNORE_PROBLEMS
- [ ] AFL_IGNORE_PROBLEMS_COVERAGE
- [ ] AFL_STATSD_TAGS_FLAVOR
- [ ] AFL_STATSD
- [ ] AFL_STATSD_PORT
- [ ] AFL_STATSD_HOST
- [ ] AFL_IMPORT
- [ ] AFL_IMPORT_FIRST
- [ ] AFL_SHUFFLE_QUEUE
- [ ] AFL_CUSTOM_QEMU_BIN
- [ ] AFL_PATH
- [ ] AFL_CUSTOM_MUTATOR_LIBRARY
- [ ] AFL_CUSTOM_MUTATOR_ONLY
- [ ] AFL_PYTHON_MODULE
- [ ] AFL_DEBUG
- [ ] AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES
- [ ] AFL_DUMB_FORKSRV
- [ ] AFL_EARLY_FORKSERVER
- [ ] AFL_NO_SNAPSHOT
Loading
Loading