uds-se / formatfuzzer Goto Github PK
View Code? Open in Web Editor NEWFormatFuzzer is a framework for high-efficiency, high-quality generation and parsing of binary inputs.
Home Page: https://uds-se.github.io/FormatFuzzer/
License: Other
FormatFuzzer is a framework for high-efficiency, high-quality generation and parsing of binary inputs.
Home Page: https://uds-se.github.io/FormatFuzzer/
License: Other
This is really nice and fast C++ tool for parsing 010 template based binaries. However we need to convert parsed data structure to JSON or XML, Could you guide on where we can implement such thing or what existing functionalities that can be used to do this easily.
I tried the FormatFuzzer with our own template and it seems it can parse the binaries based on the output it generates, But we want this to generate the JSON output from the tree.
Thank you
Need to install
such that it can be used in any directory
“mutate file1 file2” would parse file1, invert one randomly chosen decision, and then generate file2. Simple, yet effective.
Do you have any plan on integration to newer version of AFL++ recently? Since the APIs of AFL++ has updated a lot in last 2 years and it has more powerful functions.
Add pdf.bt file
After creating the issue, checkboxes will appear where [] label
exist in the
markdown. You can check/uncheck them to fill out the environment section.
Platform
Python Version
After checking out FormatFuzzer, I get
$ make gif-fuzzer
g++ -std=c++17 -DHAVE_CONFIG_H -I. -g -O3 -Wall -MT gif.o -MD -MP -MF .deps/gif.Tpo -c -o gif.o gif.cpp
In file included from gif.cpp:6:
./bt.h:12:10: fatal error: 'boost/crc.hpp' file not found
#include <boost/crc.hpp>
^~~~~~~~~~~~~~~
See above
gif-fuzzer
should be produced
I would like to have a flag to automatically delete error file when running ./gif-fuzzer parse input.gif
And I want to control max width and height when generating images using ./gif-fuzzer fuzz
command
Say, “gif-fuzzer fuzz -n 500 —pattern=input{}.gif” generates input1.gif to input500.gif
First of all, thanks for the project! Looks interesting, hoping to add it to my workflow tomorrow.
Is there an easy way to implement something that works similar to generate_file(), except using buffers instead of using file descriptors?
I tried copying afl_pre_save_handler
, but it looks like that expects stdin?
extern "C" size_t afl_pre_save_handler(unsigned char *data, size_t size,
unsigned char **new_data) {
file_acc.seed(data, size, 0);
try {
generate_file();
} catch (...) {
delete_globals();
*new_data = NULL;
return 0;
}
*new_data = file_acc.file_buffer;
return file_acc.file_size;
}
Currently writing a new template that needs to seek to an offset that's defined in the file itself. The issue is that because I try to use FSeek
to an invalid offset often, the vast majority of files end up being invalid. It's extremely slow.
dave@ubuntu:/mnt/space/FormatFuzzer$ ./dave-fuzzer benchmark
Generated 7 files from 10000 attempts in 1.245248 s.
Average file size 285 bytes.
Speed 5.621370 / s.
And my template looks like this:
uint32 off;
FSeek(off);
Any suggestions on how I can give FormatFuzzer a hint that off
can't be larger than the file itself?
Related to #5.
Platform
Python Version
When mutating the decision files randomly, quite often FormatFuzzer will fail on random size exceeded rand_size
.
I also run into bitfield lookahead not implemented
sometimes.
Steps to reproduce
while true; do ./gif-fuzzer fuzz --decision /dev/urandom /dev/null ; done
gif-fuzzer: output.gif created
Is this an intended design limitation/choice, or a bug? I think it's the former, but it's not documented anywhere.
Hi Rafael,
Since the included "pfp" package is heavily modified, it should be renamed - also to avoid conflicts with a potentially installed "pfp" package. I suggest the name "pfpg".
Cheers,
Andreas
can we add android dex file format ?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.