Statische Analyse Gero Leinemann Statische Analyse Was ist
- Slides: 9
Statische Analyse Gero Leinemann
Statische Analyse � Was ist das? � Was mache ich damit? � Wie funktioniert das? � Wie benutze ich das? � Demo ◦ Find. Bugs ◦ STAN 4 j ◦ IDA Pro � Fragen?
Was ist das? � Analyse eines Programms, ohne es auszuführen ( dynamische Analyse) � Anwendung mathematischer Verfahren auf Programme-Code um Eigenschaften zu prüfen � Zwei Arten: ◦ Analyse des Source-Codes �Meist direkt auf dem AST der jeweiligen Sprache ◦ Analyse des Object-Codes �Wird oft in WHILE-ähnliche Sprachen übersetzt
Was mache ich damit? � Wird ◦ ◦ ◦ benutzt für: Optimierung (klassisch) Software-Qualität Sicherheit Reverse Engineering Korrektheit (-sbeweis) lint
Wie funktioniert das? � Methoden: ◦ Denotationelle Semantik �Abbildung von Zustandsräumen ◦ Operationelle Semantik �Schrittweise Zustandsänderung ◦ Axiomatische Semantik �Schlussregeln über Eingabe ◦ Abstrakte Interpretation �Verallgemeinerung/Teilweise (abstrakte) Ausführung � Möglichkeiten Halteproblem begrenzt durch das
Abstrakte Interpretation � Nachverfolgen des Control-Flows � Monotone Funktionen über Verbänden ◦ Praktisch: Mitführen eines Zustandsraumes durch das Programm � Ziel: Minimaler (möglichst präziser) Zustandsraum � Approximation von Fixpunkten bei Branches/Loops ◦ Beschränkung des Zustandsraumes ohne jede Iteration auszuführen ◦ z. B. durch Widening (aktuelle Forschung), abstrakte Domänen
Demo
Fragen?
Bildnachweise � http: //findbugs. sourceforge. net/umd. Findbug s. png � http: //testlinkjavaapi. sourceforge. net/images /stan 4 j-88 x 31 -o 1. png � http: //www. di. ens. fr/~cousot/projects/DAED ALUS/synthetic_summary/POLYSPACE/imgs/l ogo_fond_blanc. gif � http: //findlogo. net/images/E/eclair%20 logo. j pg � http: //amiga-dev. wdfiles. com/local-files/tool%3 Aida-pro/idapro. gif