Comments (12)
What exactly do you want to track? How many bits are currently set in the coverage map?
For this, one easy way could be to wrap the MapFeedback
with your own feedback that also keeps track of the current progress. Could this roughly be what you are looking for? In case it's unclear please don't hesitate to ask further questions. :)
from libafl.
one easy way could be to wrap the
MapFeedback
I'll look into it sounds cool :)
I was actually thinking more about how to display the stats with all other stats in SimpleStats
. I can wrap MapFeedback
and make it emit a new event FeedbackEvent
which the event manager will receive and update the Stats
field. I guess displaying custom stats could be common case for fuzzers, maybe we could do a custom stats event that passes a KV to be printed?
Or I could just hack a loop with a sleep to ask MapFeedback
how many edges it collected. What would you suggest be better?
from libafl.
Ah sorry, I get the question a bit better, now. :)
The plan is to allow custom events, however we had to comment them out at some point during refactoring. I think it should be asy to bring them back, see
LibAFL/libafl/src/events/mod.rs
Line 127 in b519363
With this, emitting your own events shoud be easy.
Thinking about it, it may also make sense to make the normal stats event take additional data, @andreafioraldi what do you think?
from libafl.
Yes is a thing that we planned, but not in our priority list ATM. If you want to implement it, don't use a CustomEvent, add a field to the Event enum as it is a common thing that users want to log.
from libafl.
Anyway, I plan a refactor of the Stats system as now we print cumulative stats of all the clients while it is interesting to have stats from each client (the coverage stats would fall in this case) and global stats
from libafl.
Cool i'll look into it and update if I come up with something useful
Thanks guys
from libafl.
Just made a PR #107, let me know what you think
from libafl.
Just made a PR #107, let me know what you think
Ty, probably I will use it as a base but I will not merge it, I want to change a bit Stats to allow arbitrary stats like this to be added easily.
from libafl.
Cool ✌️
from libafl.
Hey @bitterbit can you give a look to #114 and see it if cover your usecase?
Now there are custom stats events and can be sent in this way https://github.com/AFLplusplus/LibAFL/blob/new_stats/libafl/src/feedbacks/map.rs#L302
from libafl.
The interface is now this and prints each MapFeedback using the name
from libafl.
@andreafioraldi looks perfect! 💪
from libafl.
Related Issues (20)
- `libafl_libfuzzer_runtime` does not compile with Apple's clang on macOS HOT 8
- SIGINT does not stop fuzzing with libafl_libfuzzer_runtime HOT 4
- Make `current_corpus_idx` infallible? HOT 3
- Make havoc_mutations Available for Custom Inputs HOT 34
- TUI reports stability as 0% when it is actually 100%
- LibAFL-qemu-bridge stop linking with latest rust nightly HOT 6
- frida: Hook LoadLibrary/dlopen in order to unpoison newly loaded libraries
- frida-windows: Hook file memory mapping/unmapping functions to correctly poison/unpoison memory
- frida: Make the allocator multithreaded HOT 1
- GNU assembler does not recognize `.dword` in `libafl_qemu.h` HOT 2
- frida-asan: frida_gdiplus crashes with Asan on Windows HOT 4
- StdOutObserver/StdErrObserver don't receive data because of a clone HOT 4
- `Launcher` does not work with `MmapShMemProvider` HOT 9
- Missing extern "C" causing bitmap_size != 0 assertion HOT 2
- Executors which wrap other executors double count executions HOT 3
- Documentation for libdesyscall HOT 1
- Implement `std::error::Error` for `QemuRWError`
- Implement grammar enumeration HOT 1
- Allow building libafl_qemu with several arches HOT 1
- Introduce API to exit on `n` target executions HOT 1
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 libafl.