880 Commits

Author SHA1 Message Date
Dominik Maier
4d50ba277a fixed typo 2021-08-04 15:29:42 +02:00
Dominik Maier
92ba3f59f9
StateRestorer.reset() removes old tmpfile (#242)
* StateRestorer.reset() removes old tmpfile

* checking map size on deref for extra safety

* clippy
2021-08-04 15:13:54 +02:00
Dominik Maier
5542a81e12
Added state restorer testcase, fixed restorer (#240)
* added state restorer testcase

* fixed testcase

* no_std, clippy

* printing less often
2021-08-03 23:53:30 +02:00
Dominik Maier
ff589d9a89 clippy fixes 2021-08-03 12:51:20 +02:00
julihoh
7750707fee
fix ci for latest clippy version (#239)
* clippy

* fix ubuntu as well
2021-08-03 12:29:30 +02:00
Dominik Maier
38c657338c added testcases for state restore, bugfixes 2021-08-03 05:12:51 +02:00
Toka
bfe0a97077
AFLFast (#208)
* Defined PowerScheduleTestcase

* calibrate stage

* powerschedule

* PowerQueueCorpusScheduler

* Calstat

* Integer for observer

* update power.rs

* calculate_score

* no_std

* no_std

* calibrate_case

* calculate_score done

* update fuzz_level

* update depth

* rename, PowerScheduleQueueScheduler::next

* increment hashmap

* n_fuzz

* no_std

* fmt

* clippy

* check bitmap_size

* hash

* compile

* rename, vec

* fuzzer runs

* fixes

* rename, no_std log2

* fmt

* clippy

* fmt

* unused imports

* use exec_time

* getter/setter

* No unwrap

* ToString

* fixes

* ahash

* fmt

* use favored from power.rs side

* rename

* IsFavoredMetadata

* run_target

* clippy fixes

* doc & fix

* doc

* rename

* forgot log2

* fix

* fix

* added comments explaining why the COE and FAST schedules are different from the thesis

* saturated increment

* saturating_add

* put n_fuzz in PowerScheduleMetadata

Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
2021-07-28 21:19:50 +02:00
Andrea Fioraldi
1692bbc214 Remove debug print 2021-07-28 15:12:28 +02:00
Andrea Fioraldi
0bd292f2ae Merge branch 'main' of github.com:AFLplusplus/LibAFL into main 2021-07-22 11:58:32 +02:00
Andrea Fioraldi
7e06b90364 Fix SimpleRestartingEventManager broken generics 2021-07-22 11:58:24 +02:00
s1341
5156b4cf8f
staterestore File::open should be File::create (#235) 2021-07-22 11:38:43 +02:00
David CARLIER
90b7ae08d6
x86 32 bits build fix (#234) 2021-07-21 21:48:33 +02:00
Andrea Fioraldi
dfe39e2af7
libafl_sugar (#215)
* fuzzer mod

* libafl_sugar skeleton

* build libafl_sugar

* libfuzzer_stb_image_sugar

* Delete log

* qemu in libafl_sugar

* docker

* macos merda

Co-authored-by: Dominik Maier <domenukk@gmail.com>
2021-07-20 11:47:33 +02:00
Dominik Maier
9591ed995e
Panic on Too Slow Broker (#230)
* panic on too slow broker

* constant for max pending pages
2021-07-20 02:39:03 +02:00
David CARLIER
b0cb74324c
fix android arm64 build (#231) 2021-07-20 02:38:44 +02:00
Andrea Fioraldi
230d7a1cb1
CachedOnDiskCorpus (#229)
* sized inputs

* push CachedOnDiskCorpus and fix OnDiskCorpus

* comments
2021-07-16 16:34:43 +02:00
Andrea Fioraldi
5cd7339b1a
Qemu read memory mappings (#228)
* add x64 syscalls numbers

* syscall hook

* update commit

* read guest mappings

* clippy
2021-07-16 10:38:00 +02:00
Dominik Maier
5a14b870e2
Added staterestore to restarting mgrs (#225)
* added staterestore to simple restarting mgr

* reworked launcher

* ? instead of unwrap

* no_std fixes

* windows

* fixed save fn

* added llvm to dockerfile
2021-07-15 13:13:07 +02:00
Andrea Fioraldi
b09fa4e3f4
Qemu syscalls hook (#226)
* add x64 syscalls numbers

* syscall hook

* update commit
2021-07-15 11:12:10 +02:00
Andrea Fioraldi
ac783c6119 Fix inifnite serialization for CmpValuesMetadata 2021-07-15 09:58:23 +02:00
Andrea Fioraldi
ec4c5ae88a
remove timeout on crash (#224) 2021-07-13 16:15:12 +02:00
Andrea Fioraldi
42b7c6d7e7
Qemu CmpLog (#223)
* empty libafl_qemu crate

* fuzzbench qemu fuzzer skeleton

* emu.run() works without bp

* working emu loop

* resolve elf symbols

* running Qemu fuzzer without coverage

* qemu fuzzer with edge coverage

* merge into inprocess::GLOBAL_STATE

* create QemuExecutor and remove QemuEmulator

* qemu hooks and persist edges mapping storing them in State

* windows fix

* add libafl_qemu to workspace

* windows fix

* some clippy

* clippy

* fix fuzzbench_qemu

* fix fuzzbench_qemu makefile

* fuck you macos

* resolve PIC symbols

* cmp hooks

* cmplog hooks

* qemu cmplog

* clippy
2021-07-13 16:02:53 +02:00
Dominik Maier
712c5daeb9
Reload corpus size after restart (addresses #210) (#220)
* reload corpus size after restart (addresses #210)

* no_std
2021-07-12 13:16:40 +02:00
Toka
13b4a143b8
branch main (#219) 2021-07-11 01:47:01 +02:00
Toka
4dea81b2a2
MOpt Refactor & Bug fixes (#218)
* rename

* fmt

* post_exec

* post_exec

* bug fix & change type

* refactor

* clippy

* fix

* unnecessary trait

* mode in Mutator

* remove println
2021-07-10 16:32:10 +02:00
Dominik Maier
0121096e84
Fixes for no_std build (#214)
* builds on no_std

* fixed std build

* nightly fmt on CI

* nightly fmt on CI (again)

* fmt

* no_std build on unix

* more mem

* added no_std from #212 to gh workflow

* more ci, less nightly

* clippy

* more toolchains?

* docu

* y u no build

* more ci?

* next try

* fixed dockr

* more dockerfile fixes

* ondisk corpus fixed

* panic:?

* ubunutu

Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
2021-07-09 20:07:56 +02:00
Andrea Fioraldi
4af9af784f Serialize CmpValuesMetadata to an empty object to save space on State serialize 2021-07-09 14:35:31 +02:00
Andrea Fioraldi
d472a1242a
libafl_qemu (#211)
* empty libafl_qemu crate

* fuzzbench qemu fuzzer skeleton

* emu.run() works without bp

* working emu loop

* resolve elf symbols

* running Qemu fuzzer without coverage

* qemu fuzzer with edge coverage

* merge into inprocess::GLOBAL_STATE

* create QemuExecutor and remove QemuEmulator

* qemu hooks and persist edges mapping storing them in State

* windows fix

* add libafl_qemu to workspace

* windows fix

* some clippy

* clippy

* fix fuzzbench_qemu

* fix fuzzbench_qemu makefile

* fuck you macos
2021-07-08 15:21:14 +02:00
Andrea Fioraldi
a1fc2a5453 Bump to 0.5.0 2021-07-05 14:12:40 +02:00
Toka
849ff1fa04
MOpt scheduler (#161)
* add the struct for MOpt globals

* constants

* RAND_C

* more comments & reorder class members

* select_algorithm

* no_std fixes

* clippy fixes

* MOptMutator

* MutatorsTuple has HasLen

* MOptStage

* pso_update

* HasMOpt trait

* ScheduledMutator, core_fuzzing

* clippy fix

* fmt

* core_fuzzing

* core_fuzzing done

* fix

* pilot_mutate

* pilot_fuzzing

* pilot_fuzzing done

* MOpt metadata

* Make MOptMutator into a trait

* initialize_mopt

* No getter/setters

* fmt

* fixed compiler warnings & clippy warnings

* Comments

* fix type paramter, integrate into libpng

* fmt

* fmt

* No HasMOpt

* fmt

* improve

* pso_initialize, various fixes

* clippy

* fmt

* always pacemaker mode

* fmt

* fix

* less noisy fmt::Debug

Co-authored-by: Dominik Maier <domenukk@gmail.com>
Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
2021-07-05 13:54:15 +02:00
Andrea Fioraldi
5b76c22ea7
Cmplog routines mutator (#204)
* save

* routines in meta

* execute passes

* fix cmplog rtn pass

* clippy
2021-07-05 09:54:44 +02:00
Dominik Maier
84a9e36acf
Github Actions Cache (#205)
* trying out github actions cache

* split up build steps

* deactivated cache for macos

* debugging

* also for windows (?))

* clippy fix

* out folder ignored
2021-07-02 20:51:22 +02:00
Andrea Fioraldi
f0743cbb17
remove serde bounds for Observer (#202) 2021-07-02 15:07:51 +02:00
Andrea Fioraldi
44f6e4c389
Improve introspection (#200)
* remove NUM_FEEDBACKS

* working introspection

* adust introspection stats

* bugfixes, clippy

* removed outdated define

* more clippy;

* no_std

Co-authored-by: Dominik Maier <domenukk@gmail.com>
2021-07-02 10:58:36 +02:00
Dominik Maier
204b15a432
Mgr ID improvements (#201)
* added mgr_id to eventmanager

* trying to install missing llvm to ci

* moved mgr_id to own trait

* improved imports

* removed unrelated file from pr

* no_std fixes
2021-07-01 17:27:22 +02:00
Dominik Maier
4cafa8c253
added mgr_id to eventmanager (#196) 2021-06-30 21:58:06 +02:00
Max Ammann
08263f7ade
Expose some details about introspection (#195)
* Expose some details about introspection, such that custom Stats implementations can use them

* Make the functions public

* Fix formatting
2021-06-30 14:16:36 +02:00
Dominik Maier
c2cd49413b typo fix 2021-06-29 12:09:49 +02:00
Dominik Maier
37f641f79b
Metadata lookup once (#186)
* metadata lookup once

* fix clippy
2021-06-22 18:41:46 +02:00
Andrea Fioraldi
bdb5efbf5b
Configurations (#162)
* print sender id

* storing sender id to env

* executor in llmp handle_in_client

* compile the lib

* compiling generic_inmemory

* fix forkserver

* adapt from fuzzers

* instrospection fix

* exitkind in NewTestcase

* fix libafl_frida

* fix firda_libpng

* send conf with Newtestcase event

* bump to 0.4.0

* no_std fix

* fmt

* fix libfuzzer_libmozjpeg

Co-authored-by: Dominik Maier <domenukk@gmail.com>
2021-06-22 15:04:14 +02:00
Dominik Maier
5c5a1cf2e9
fixed fuzzbench early exits (#182) 2021-06-22 09:02:56 +02:00
Andrea Fioraldi
fee9cae8ed Fix InProcessExecutor test mod 2021-06-21 11:58:04 +02:00
Andrea Fioraldi
6351cb16e5 Support multiple crash handlers when using multiple InProcessExecutors 2021-06-21 11:39:42 +02:00
Dominik Maier
dea21da5c3
fuzzbench harness (#165)
* starting to build fuzzbench harness

* fuzzbench updated

* fuzzbench example readme

* removed dummy files

* Intial de-luxe dockerfile added

* added to dockerignore

* more fuzzbench

* dockerfile

* final dockerfile fun

* fuzzing fixes, switched rand, build fixes

* fmt

* added dummy fuzzone

* silence wrapper output

* clippy

* logfile fixes

* adopt changes to libafl-cc

* various fixes
2021-06-16 18:24:07 +02:00
Andrea Fioraldi
1faadec106
Move win32 libs in libafl_cc and improve static lib linking (#176)
* Move win32 libs in libafl_cc and improve static lib linking

* fmt
2021-06-16 14:21:13 +02:00
Gal Tashma
8202548648
dont send was_killed to forkserver more than once (#175)
Co-authored-by: galtashma <gal.tashma@swg.local>
2021-06-15 21:58:05 +02:00
Dominik Maier
c2feddbe7c
Implemented rand::Rng for libafl::Rand as feature flag (#174)
* implemented rand::Rng for libafl::Rand as feature flag

* fixed build

* renamed macro
2021-06-15 09:30:32 +02:00
Gal Tashma
1b1060b35a
fix introspection for mutational stage (#172) 2021-06-14 14:40:36 +02:00
Toka
ad80df5bbb
compression fix (#170)
* compression fix

* use miniz_oxide

* fix Error::Compression
2021-06-14 11:06:53 +02:00
Andrea Fioraldi
2b0976132a
Generic Inmemory Fuzzer (#166)
* generic inmemory fuzzer

* Link whole archive

* fmt
2021-06-14 10:26:10 +02:00