all I need to know about libfuzzer
LLVMFuzzerTestOneInput: fuzzing target
LLVMFuzzerInitialize: initialization function to access argc and argv
LLVMFuzzerCustomMutator: user-provided custom mutator
LLVMFuzzerCustomCrossOver: user-provided custom cross-over function
In the above functions, only the LLVMFuzzerTestOneInput is necessary to be implemented for any fuzzing programs. This function takes a buffer and the buffer length as input, it is the target to be fuzzed again and again. When the users want to finish some initialization job with argc and argv parameters, they also need to implement LLVMFuzzerInitialize. With LLVMFuzzerCustomMutator and LLVMFuzzerCustomCrossOver, the users can also change the behaviors of producing input buffer with one or two old input buffers.
https://blog.netbsd.org/tnf/entry/gsoc_2018_reports_integrate_libfuzzer1
网友评论