Statische Analyse Gero Leinemann Statische Analyse Was ist

  • Slides: 9
Download presentation
Statische Analyse Gero Leinemann

Statische Analyse Gero Leinemann

Statische Analyse � Was ist das? � Was mache ich damit? � Wie funktioniert

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) �

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

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

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

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

Demo

Fragen?

Fragen?

Bildnachweise � http: //findbugs. sourceforge. net/umd. Findbug s. png � http: //testlinkjavaapi. sourceforge. net/images

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