Dominik Maier
48caffb802
Allow to load a list of files ( #1044 )
2023-02-05 21:22:58 +01:00
Andrea Fioraldi
eaf5ff9de0
Restart loading initial inputs even after a crash/timeout ( #1040 )
...
* Track initial inputs loading
* libfuzzer libpng
* fuzzbench
* fix no_std
* fix no_std
* clippy
* fuzzers
2023-02-03 11:56:47 +01:00
Dominik Maier
86ab682e5a
Readme: Add information about system mode QEMU ( #1038 )
2023-02-02 15:20:45 +01:00
Dongjia "toka" Zhang
db62c26eda
Remove unused imports ( #1035 )
...
* remove unused imports
* fmt
2023-02-01 12:26:56 +01:00
WorksButNotTested
71f106be20
Fix accidental breakage of non-AARCH64 systems ( #1036 )
...
Co-authored-by: Your Name <you@example.com>
2023-02-01 17:46:12 +09:00
WorksButNotTested
d0b4c39acd
Change to combine restoration prologue with coverage register spill ( #1029 )
...
Co-authored-by: Your Name <you@example.com>
2023-02-01 04:41:56 +01:00
Andrea Fioraldi
2a88a776bf
Fix frida Cargo.toml ( #1033 )
2023-01-31 14:05:07 +01:00
Andrea Fioraldi
b77c0b78cc
Fix readme position in qemu sys ( #1032 )
2023-01-31 13:40:28 +01:00
Dongjia "toka" Zhang
f9dd67b59b
Comment Fix
2023-01-31 19:40:58 +09:00
Dominik Maier
cc53da85fb
Remove {update,clear}_hash from ObserverWithHashField, add hasher (extending #1019 ) ( #1028 )
...
* libafl: Remove `{update,clear}_hash` from `ObserverWithHashField`
These methods aren't used by `NewHashFeedback`, so there's no compelling reason
to keep them in the interface. They preclude implementations of
`ObserverWithHashField` that calculcate a hash on-the-fly from a value. For
example, my use-case is to store the stdout of a process, and use
`NewHashFeedback` to only collect inputs that result in new messages on stdout.
Both of these methods are pretty suspicious to begin with - why should other
code be able to update the internal state of the observer? What are the
semantics of `update_hash`? If there are compelling reasons to keep these
methods, let's clarify their intent in the documentation.
* libafl: Return hash by value from `ObserverWithHashField`
This allows implementors of this trait to not store the hash, but rather to
compute it on-the-fly. Since `Option<u64>` is `Copy` (and quite small), and
this method is called once per execution of the target program, this is likely
to have negligible performance impact.
* libafl: Implement `ObserverWithHashField` for `ValueObserver`
This demonstrates the utility of the previous two commits. Now, `ValueObserver`
can be used with `NewHashFeedback`.
* Clippy, move to ahasher
* Oops :)
---------
Co-authored-by: Langston Barrett <langston.barrett@gmail.com>
0.9.0
2023-01-31 10:45:42 +01:00
Andrea Fioraldi
fdf579bcd5
Bump to 0.9.0 ( #946 )
...
* bump to 0.9.0
* fix libafl_tinyinst
* fix
---------
Co-authored-by: Dominik Maier <domenukk@gmail.com>
2023-01-31 10:42:01 +01:00
Dominik Maier
d73fb92ddf
Python CI ( #1024 )
...
* Python CI
* fix testcase
* fix yml
* Fixing test
* format python
* cleanup
2023-01-31 05:04:19 +01:00
Dominik Maier
fc8c92514f
Update README.md ( #1027 )
2023-01-31 04:43:27 +01:00
Dominik Maier
7c4acb3b22
Update README.md ( #1026 )
2023-01-31 04:34:01 +01:00
Dominik Maier
2cd3fb8fea
New Logo ( #1025 )
2023-01-31 04:32:47 +01:00
Dominik Maier
ff9208f107
Fixing python example ( #1016 )
...
* Fixing python example
* Fix python baby fuzzer
---------
Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
2023-01-30 20:03:07 +01:00
Fabian Freyer
afa506c0c8
libafl_frida: Allow compilation for iOS ( #1023 )
...
iOS does not have any TLS, so we don't need to keep track of it.
This allows compiling for the aarch64-apple-ios target.
2023-01-30 18:05:00 +01:00
Dominik Maier
33ddce2cea
Introduce MutatorId, Tuneable fixes ( #1022 )
...
* Add simpler APIs for TunableStage
* Make API usable
* Add TunableScheduledMutator APIs
* Introduce MutatorId
* More API
* Cleanup
* add sampling-based mutation scheduling
* reduce precision for sampling
* clippy
2023-01-30 18:04:42 +01:00
Dongjia "toka" Zhang
b927fc9b06
Add filename_path to MmapShMemProvider ( #1014 )
...
* change how it is named
* Add more comments
* more
* macOS 32bytes onlyu
* chg
* comment, fix
2023-01-26 00:53:37 +01:00
Dominik Maier
e5c220519e
LLMP Broker: timeouts for inactive clients ( #1005 )
...
* LLMP Timeouts
* Make broker timeouts optional
* fix warning
* fix warning
2023-01-25 12:03:23 +01:00
Andrea Fioraldi
92c0c5eeab
Fix second Forkserver Broken Pipe ( #1013 )
...
* Truncate at MAX_FILE
* AFL_MAP_SIZE
* todo
2023-01-24 20:50:56 +01:00
Addison Crump
00ec7e143c
fix for MapIndexesMetadata ( #1008 )
...
Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
2023-01-23 15:08:33 +01:00
Dongjia "toka" Zhang
fe51286586
TinyInst Update ( #968 )
...
* tmp
* more
* save
* TODO
* fix
* update to tinyinst on crates
* dep
* fmt
* shmem done
* cpp fmt
* clp
* fmt
* why??
* ver
* more makefile.toml
* windows test
* Update build_and_test.yml
* fix
* a
* install
* fmt
* fix
* only macos and win
* more
* The order matters
* remove
* fmt
* chg
* typo
Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
2023-01-23 11:11:53 +01:00
David CARLIER
3b68399cc9
libafl_cc fixes for clang 16 ( #1010 )
...
None constant being deprecated, it is recommended
to use the std::nullopt_t type instead.
2023-01-23 11:00:42 +01:00
Andrea Fioraldi
7fd9ac0952
SyncFromBrokerStage to sync from a broker with a different Input type ( #997 )
...
* ConverterLlmpEventManager
* docs
* SyncFromBrokerStage
* fix
* separate InputConverter
* nautilus
* nautilus_sync
* send testcases
* upd nautilus
* meta
* fix
* clippy
* fix
* Update build_and_test.yml
* fix
* fix
* Use find_libpython
* ci
* upd qemu
2023-01-20 17:16:29 +01:00
WorksButNotTested
5cdb7f7b05
Improve AARCH64 performance ( #989 )
2023-01-18 13:56:17 +01:00
Addison Crump
ebc886032f
Fixes for multiple subtle bugs with grimoire, mutators, and state ( #1001 )
...
* fix multiple subtle bugs with grimoire, mutators, and state
* obey the clippy overlord
* grimoire: skip over token after splice
* remove extraneous length check
2023-01-18 13:53:31 +01:00
Paul Walker
333a51aeaa
StacktraceObserver speedup using unresolved backtrace ( #1002 )
...
We don't use the symbols anyway, and it makes the call *way* faster.
2023-01-18 13:51:42 +01:00
Andrea Fioraldi
3c8a00bc42
Fix qemu user ( #1003 )
2023-01-18 13:38:49 +01:00
Dongjia "toka" Zhang
1446692f02
Fix stability UI ( #1000 )
...
* Update mod.rs
* fmt
2023-01-18 19:00:50 +09:00
van Hauser
15c1c0fb5e
Avoid no-op in ByteRandMutator ( #999 )
2023-01-17 11:07:50 +01:00
Andrea Fioraldi
7cf7d545a6
Update QEMU and fix snapshot restore mem leak ( #998 )
...
* Update qemu
* Fix leak
* upd
* fmt
2023-01-17 11:06:31 +01:00
Dominik Maier
97e88af0c5
OnDiskCorpus: Write metadata by default, metadata gzip compression ( #995 )
...
* Write metadata by default
* fix fuzzers
* Cleanup, gzip feature
* Fix casing for ondisk corpus
* fix fmt, clippy
* clippy
* clippy for gdiplus fuzzer
* fmt
2023-01-13 01:07:36 +01:00
Addison Crump
28786c943a
Grimoire fixes ( #993 )
...
* fixup grimoire/generalisation, remove GeneralizedInput in favour of metadata
* additional cleanup
* transformable inputs to solve the grimoire problem
* explicit use of 'transforming' to keep typing compatible with normal usage
* clippy fix
* fixes for nautilus, python
* explicit inlining for reflexive impl
* fix for tutorial
Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
2023-01-13 01:07:21 +01:00
Andrea Fioraldi
ec84c71eae
Corpus maps ( #947 )
...
* hashmap corpus for inmemory
* corpus_btreemap feature
* CorpusId
* queue
* MinimizerScheduler::remove
* fixes
* continue
* keys
* working corpus
* ok
* weighted left
* wip
* port weighted scheduler
* it compiles
* doc
* fix mutators
* fix queue
* fix iter
* tests
* fix
* fix
* fix
* py
* clippy
* clippy
* clippy
* cmin
* fix
* fix
* fix
* clippy
* remove Corpus::random_id
2023-01-09 14:15:07 +01:00
biazo
3345727c94
fixing linking issue on qemu build ( #990 )
...
* fixing linking issue
* insteading of linking lib we dont use. just disable them
* fixing the keyutils problem
Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
2023-01-09 10:10:14 +01:00
Dominik Maier
17cb317429
Fix early drop for frida transformer ( #992 )
...
* Fix early drop for frida transformer
* clippy
2023-01-08 18:19:30 +01:00
Dominik Maier
159e6ea480
Fix Launcher for M1, fix frida_libpng harness compilation, fix CI ( #987 )
...
* Fix harness compilation for frida_libpng
* M1: Always use fast cores
* always ignore result
* seeing if manualy installing libunistring fixes wget
* seeing if manualy installing wget fixes it, instead
* un-remove comment
2023-01-05 14:26:20 +01:00
WorksButNotTested
266677bb88
FRIDA: Fix previous_pc constant ( #988 )
...
Co-authored-by: Your Name <you@example.com>
2023-01-05 12:20:06 +01:00
WorksButNotTested
f27ca843e1
FRIDA x64 performance improvements ( #985 )
...
Co-authored-by: Your Name <you@example.com>
2023-01-05 11:51:58 +01:00
Dominik Maier
1bb37e4b98
Book: Explain SymCC constraint solving (follow up on #980 ) ( #986 )
...
* Make the kind of solving more clear (follow up on #980 )
* Update docs/src/advanced_features/concolic.md
Co-authored-by: julihoh <julihoh@users.noreply.github.com>
Co-authored-by: julihoh <julihoh@users.noreply.github.com>
2023-01-05 11:51:31 +01:00
hexcoder
7d412693c8
Book review ( #980 )
...
* docs review
* docs review
* docs review wording
* docs review wording
* docs review wording
* wording
* nits
* wording
* wording
* nits
* docs_review wording
* wording
* wording
* wording
* Wording
* wording
* nits
* Wording
* fix main naming for afl++
* update symcc
Co-authored-by: Dominik Maier <dmnk@google.com>
2023-01-04 15:21:08 +01:00
Dongjia "toka" Zhang
d2985c5b2e
Clippy fix ( #978 )
...
* fix
* mac
* clp
2023-01-02 20:35:41 +09:00
Sparrrgh
43425cf103
Correct MIPS register naming in libafl_qemu ( #977 )
2022-12-31 09:23:50 +01:00
Dongjia "toka" Zhang
9458549fef
Remove declare -A ( #976 )
...
* fix
* fix
* debug
* debug
* older version
* newer version
* fix
* unix?
* fix
2022-12-30 02:02:38 +09:00
Erwan Grelet
3e38862837
Forkserver example with forkserver.c ( #726 ) ( #973 )
...
* forkserver: Add an API to setup the shared memory region for edge coverage
This is inspired from and meant to be similar to afl-cc's instrumentation.
Remove ! return type from __afl_start_forkserver as it returns in several cases.
* Add example fuzzer using LibAFL's forkserver
The fuzzer is instrumented with libafl_cc as well.
Co-authored-by: ergrelet <ergrelet@users.noreply.github.com>
2022-12-28 22:16:27 +01:00
Dongjia "toka" Zhang
676a149497
Update CorpusWeightTestcaseScore ( #975 )
...
* fix
* clp
* fmt
2022-12-28 22:16:08 +01:00
Patrick Gersch
2b092f40fa
SimpleMonitor optionally displays user_monitor stats ( #970 )
...
* Adding with_user_monitor() to SimpleMonitor
* Satisfy clippy
* Satisfy fmt and pylibafl
* Fix leading whitespace
2022-12-26 11:20:30 +01:00
Dongjia "toka" Zhang
476cb7e7dc
Frida Makefile.toml fix ( #969 )
...
* frida build script fix
* fix
* Update build_and_test.yml
* Update build_and_test.yml
* Update build_and_test.yml
* Update build_and_test.yml
* Update build_and_test.yml
* Update build_and_test.yml
* Update build_and_test.yml
* Update build_and_test.yml
* Update build_and_test.yml
2022-12-26 14:19:37 +09:00
Dominik Maier
75f12bd0eb
Remodelling Observers/Examples that rely on UB, API cleanups ( #950 )
...
* Tackling UB
* PtrMut -> MutPtr, moved mapobservers to non-UB
* QEMU fixes
* test fixes
* qemu
* Change all interfaces, fix all fuzzers
* fixes
* fix more fixes
* fmt
* fix qemu sugar
* fix some qemus
* atheris
* fmt
* more fmt
* most fmt
* more fix
* nyx fyx
* fix qemu
* clippy, fixes
* more fixes
* no unfix, only fix
* fix
* fix
* more clippy
* fixes
* ListObserver
* fmt, clippy
* fix qemu on arm
* update zlib target
* fix?
* fix
* added migration guide
* ignore doc
* fix symcc
* fix new win fuzzer
* Fixes, rename PTR_SIZE to PTR_NUM
* Try fix linking on win
* Trying to fix win linking
* more cov
* trying to fix win some more
* trying to fix mac
* trying to fix mac
* Fix tests
* Fix tests
* trying to fix win
* more mac
* giving up for windows
* fmt
* python3
* mac?
* undo windows tests
2022-12-24 14:20:44 +01:00