The role of open source software in program analysis for reverse engineering
Taher A. Ghaleb · 2016
Program analysis is the process of statically or dynamically retrieving the structure and behavior of software systems. Static analysis solely relies on the availability of source code of computer programs, while dynamic analysis captures program information using execution traces during program runtime. The entire process is called software reverse engineering, where the extracted information could eventually be visualized to facilitate program comprehension for the sake of learning, maintenance, etc. Open source software, in this context, plays a vital role in developing, enriching, and validating program analysis techniques. In this paper, we show and discuss how open source software projects significantly contribute to the development, evolution, and validation of program analysis techniques as well as enriching reverse-engineered diagrams with useful and meaningful information, even for those techniques that rely on dynamic analysis.