Binary Fuzz Testing Method Based on LSTM. (October 2019) - Yuan, Xiaoxiao; Pan, Limin; Luo, Senlin
Abstract: Fuzzing is an effective software testing technique to find bugs. In the binary fuzzing, the attempt of generating test data mainly focuses on the improvement of the mutation algorithm, which lacks further screening of the test data. This paper proposes a binary fuzz testing method based on long short-term memory. This method record the executed path information by QEMU. Then we assign values to different code branches according to the frequency of executed path. The path weights can be calculated. The LSTM model will be trained by test data and the path weights. Finally, we can take the test data as input and filter the data by referring to the path weights. This method can improve the time efficiency of fuzz testing. Experiments on a variety of different types of binary programs show that compared to the state-of-the-art fuzzer American fuzzy lop, this method achieves higher code coverage and time efficiency in the same time.