Atlas: a new way to explore software, build analysis tools

Atlas is a new software analysis platform from EnSoft Corp. Atlas decouples the domain-specific analysis goal from its underlying mechanism by splitting analysis into two distinct phases. In the first phase, polynomial-time static analyzers index the software AST, building a rich graph database. In the second phase, users can explore the graph directly or run custom analysis scripts written using a convenient API. These features make Atlas ideal for both interaction and automation. In this paper, we describe the motivation, design, and use of Atlas. We present validation case studies, including the verification of safe synchronization of the Linux kernel, and the detection of malware in Android applications. Our ICSE 2014 demo explores the comprehension and malware detection use cases. Video: http://youtu.be/cZOWlJ-IO0k

[1]  James R. Cordy,et al.  Comprehending reality - practical barriers to industrial adoption of software maintenance automation , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[2]  Premkumar T. Devanbu GENOA - A Customizable, Language- And Front-end Independent Code Analyzer , 1992, International Conference on Software Engineering.

[3]  Babić Domagoj,et al.  Exploiting structure for scalable software verification , 2008 .

[4]  Charles L. A. Clarke,et al.  Browsing and searching software architectures , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[5]  C. V. Ramamoorthy,et al.  The C Information Abstraction System , 1990, IEEE Trans. Software Eng..

[6]  Jürgen Ebert,et al.  Reverse Engineering Using Graph Queries , 2010, Graph Transformations and Model-Driven Engineering.

[7]  Oscar Nierstrasz,et al.  Enriching Reverse Engineering with Annotations , 2008, MoDELS.

[8]  Isil Dillig,et al.  An overview of the saturn project , 2007, PASTE '07.

[9]  Atul Prakash,et al.  A Query Algebra for Program Databases , 1996, IEEE Trans. Software Eng..

[10]  Suraj C. Kothari,et al.  Proving safety properties of software , 2012 .

[11]  Saburo Muroga,et al.  Binary Decision Diagrams , 2000, The VLSI Handbook.

[12]  Frederick P. Brooks,et al.  The computer scientist as toolsmith II , 1996, CACM.

[13]  Atul Prakash,et al.  A Framework for Source Code Search Using Program Patterns , 1994, IEEE Trans. Software Eng..