Dynamically Discovering Likely Program Invariants to Support Program Evolution
IEEE Transactions on Software Engineering - Special issue on 1999 international conference on software engineering
The SLAM project: debugging system software via static analysis
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Construction of Abstract State Graphs with PVS
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
PVS: A Prototype Verification System
CADE-11 Proceedings of the 11th International Conference on Automated Deduction: Automated Deduction
Combining abstract interpreters
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Guarded models for intrusion detection
Proceedings of the 2007 workshop on Programming languages and analysis for security
Lifting abstract interpreters to quantified logical domains
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Logical Interpretation: Static Program Analysis Using Theorem Proving
CADE-21 Proceedings of the 21st international conference on Automated Deduction: Automated Deduction
A fast linear-arithmetic solver for DPLL(T)
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Hi-index | 0.00 |
Static analysis has emerged in recent years as an indispensable tool in software verification. Unlike deductive approaches to program verification, static analysis can only prove simple properties. Moreover, the myriad of static analysis tools employ specific techniques that target specific properties of specific programs. Static analysis holds the promise of complete automation, scalability, and handling larger classes of properties and larger classes of systems, but a significant gap exists between such a goal and current static analysis tools. We argue that a logical foundation for static analysis allows the construction of more powerful static analysis tools that are provably correct, extensible, and interoperable, and can guarantee more complex properties of complex systems. We address these challenges by proposing a tool-bus architecture that allows the combination of several static analysis tools and methods. The combination is achieved at the logical level using decision procedures that implement combination of theories. We discuss the application of such ideas to binary program analysis in the context of intrusion detection and malware analysis.