You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Modify the Makefile to choose the language you want to test
Build everything: make
The fuzzer is in AFL_replate_mutate/afl-fuzz
Use the afl-gcc/afl-g++/afl-clang/afl-clang++ in AFL_replace_mutate to compile the program you want to fuzz.
Config the semantic.json
Before we run the fuzzer, we need to set some values in semantic.json. Here are some important values that you should set:
InitFileDir: This should be an absolute path of your init seed file dir. It can be the same as/different from your path of input.
BuiltinObjFile: If you want to use the build-in functions/variables/class for semantic validation, set this path (not a single file). Refer to grammar/solidity_grammar/semantic.json for an example.
Run
To run the fuzzer, we just run it like normal afl-fuzz:
Yongheng Chen, Rui Zhong(co-first author), Hong Hu, Hangfan Zhang, Yupeng Yang, Dinghao Wu and Wenke Lee.
In Proceedings of the 41st IEEE Symposium on Security and Privacy (Oakland 2021).