Autocorrelation-Based Detection of Infinite Loops at Runtime
Andreas Ibing, Julian Kirsch, Lorenz Panny · 2016
We present a new algorithm for the detection of infinite loop bugs in software. Source code is not needed. The algorithm is based on autocorrelation of a program execution's branch target address sequence. We describe the implementation of the algorithm in a dynamic binary instrumentation tool, the result is lightweight enough to be applied continuously at runtime. Functionality of the tool is evaluated with infinite loop bug test cases from the Juliet test suite for program analyzers. Applicability of the algorithm to production software is demonstrated by using the tool to detect previously known infinite loop bugs in cgit, Avahi and PHP.