Multiplatform Use-After-Free and Double-Free Detection in Binaries *
Grigor Keropyan, Vahagn Vardanyan, Hayk K. Aslanyan, Shamil Faimovich Kurmangaleev, Sergey S. Gaissaryan · Mathematical Problems of Computer Science · 2017
Use-after-free (UAF) defects are a class of memory corruption bugs, which occur when a program continues to use a pointer after it has been freed. Double-free (DF) defects arise when the same memory is freed more than once. The developed platform is capable to analyze binaries of several architectures (x86, x86-64, MIPS, POWER-PC, ARM) and is based on program static analysis approach. For program analysis SDG (System Dependence Graph) machine-independent representation is used. SDG combines call graph, control and data flow graphs of the program. The tool consists of two main components: SDG generation and analysis of the obtained SDG. SDG generation is implemented using Ida Pro [1] disassembler and Binnavi [2] static analysis platform. Experimental results prove the scalability and effectiveness of the developed framework. The tool is tested on several test suits such as Juliet [3]. It also has detected a number of well-known bugs in real-world projects