fuzzbench
fuzzbench copied to clipboard
DONT MERGE add af++symqemu + experiment
getting symcc working in fuzzbench was a horrible experience as the image is based on an old ubuntu ... it might be difficult for the CI as I have to get and compile z3, which takes like forever... but it works! :) sucessfully tested openssl (oss-fuzz) and re2 (normal)
Maybe we can wait for https://github.com/google/fuzzbench/pull/1062 to land so we can include it in the experiment?
@jonathanmetzman sure!
in that case maybe also add eclipser
so to have a fair comparison to afl+symqemu (which is yours)
Edit: fixed :)
different solution to integrate symqemu. and with afl++. @laurentsimon @sebastianpoeplau
getting symcc working in fuzzbench was a horrible experience as the image is based on an old ubuntu ... it might be difficult for the CI as I have to get and compile z3, which takes like forever... but it works! :) sucessfully tested openssl (oss-fuzz) and re2 (normal)
if you want use the release builds of Z3, that would save you compiling Z3 every build. I've done something like this for QSYM, which is the dependency for Z3.
wget -qO /tmp/z3x64.zip 'https://github.com/Z3Prover/z3/releases/download/z3-4.6.0/z3-4.6.0-x64-ubuntu-16.04.zip' && \
unzip -jd /usr/include /tmp/z3x64.zip "*/include/*.h" && \
unzip -jd /usr/lib /tmp/z3x64.zip "*/bin/libz3.so" && \
rm -f /tmp/*.zip && \
ldconfig && \
for a newer release (still 16.04)
wget -qO /tmp/z3x64.zip 'https://github.com/Z3Prover/z3/releases/download/z3-4.8.9/z3-4.8.9-x64-ubuntu-16.04.zip' && \
unzip -jd /usr/include /tmp/z3x64.zip "*/include/*.h" && \
unzip -jd /usr/lib /tmp/z3x64.zip "*/bin/libz3.so" && \
rm -f /tmp/*.zip && \
ldconfig && \
@wideglide thank you for that hint! If the experiment shows that symqemu is enhancing coverage (so, useful to use) I will rewrite this and more closely base on @jonathanmetzman's version.
but: for the two targets I tested (re2 and openssl) symqemu was unable to find any new inputs in a 5 minute test run. I am currently building a test for libjpeg and see if this is just because of a saturated corpus, or an issue of the build. it works fine for me on my own docker build.
yes, no paths are discovered in the fuzzbench container by symqemu, I will now try #1062
I think this can probably be closed.