Grey-box fuzzing is a widely used method for detecting vulnerabilities in real-world programs. In recent years, grey-box fuzzing methods, such as AFL, libFuzzer, have helped to find thousands of vulnerabilities. The basic idea of ​​gray-box fuzzing is to apply some pre-set generation and mutation strategies to generate input into the target program, and to discover vulnerabilities by observing the security vulnerabilities in the monitored execution process. Generators can produce input variables by flipping, replacing, adding/subtracting bits, bytes or blocks, or by generating from the input structure. The target program is usually instrumented with certain code segments in order to provide coverage feedback during actual fuzzing, which will help to evaluate the execution of the program against a specific file input. With the help of purifiers such as AddressSanitizer and MemorySanitizer, the execution is monitored by the fuzzing engine to observe whether there are security vulnerabilities. These violations, such as memory usage expiration, buffer overflow, etc., usually indicate implementation flaws that can lead to memory corruption, information disclosure, and other vulnerabilities. If a violation is triggered, the corresponding file entry will be used as proof of error. Meanwhile, if the fuzzer finds that the current input helps improve coverage, it will be used for subsequent mutations. Since the execution is repeated many times and controlled by the fuzzer, it is suitable to apply a forked execution model to reduce the overhead of loading the common prologue code segment of the target program and improve the overall fuzzing performance.