A. Zündorf, SE Group Reverse Engineering K2 1 Ziele Heute Compilerbau Nachlese Ausnutzung von Laufzeittypinformation.

Slides:



Advertisements
Ähnliche Präsentationen
Blue J.
Advertisements

der Universität Oldenburg
Harald Köbler Software Design Patterns Prototype.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung versteht Java Programmcode versteht Java Programmcode Für die Entwicklung eigener Software.
Kapitel 4 Syntaktische Analyse: LR Parsing.
Parser generieren Yet Another Compiler – Compiler YACC.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Klassenvariable (auch Klassendaten bzw. statische Attribute genannt) und statische Methoden.
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
Konstruktoren.
Assoziationen (Beziehungen). Zwischen Objekten kann es eine Beziehung geben.
Speicherung von XML- Dokumenten als Large Objects.
Reflection API ETIS SS04.
Reflection API ETIS SS05.
Automatisches Testen und Bewerten von Java-Klassen
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Grundlegende Analysen & Zwischendarstellungen
3. Klassendiagramme in Java implementieren
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Compilerbau und Reverse Engineering m Vorlesung im Wintersemester.
Reverse Engineering K2 1 Ziele Heute Nachlese Volltextsuche Dokumentation in Quelltext einbetten JavaDoc Vorbereitung für Compileransatz.
1 Reverse Engineering WS 07 / 08 A. Zündorf. Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University 2 Organisatorisches.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
Reverse Engineering Neuentwicklung von Software ist die Ausnahme => Weiterentwicklung von Legacy-Systemen Designdokumentation veraltet Aufgabenstellung:
A. Zündorf, SE Group Reverse Engineering K2 1 Reverse Engineering: Ziele Heute Compileransatz, die Zweite Findet UMLClass getName() Vorkommen Completion.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
Reverse Engineering 1 Reverse Engineering WS 04 / 05 A. Zündorf.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
A. Zündorf, SE Group Reverse Engineering K2 1 Ziele Heute Compilerbau Nachlese Ausnutzung von Laufzeittypinformation.
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
DVG Einführung in Java1 Einführung in JAVA.
JDBC EDV JDBC.
05 - Reflection Das Reflection API Reflection2 Ziel Es kommt vor, dass eine Methode ein Objekt als Parameter übergeben bekommt, ohne dass bekannt.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Bestimmung des ggT zweier Zahlen
© 2003 Pohlig Informatikgrundkurs (Pohlig-Häberle) 1 5.Was ist eine Syntax? – Ein bierseliger Bayer im Himmel 5.1 Syntax des frohlockenden Bayern Alois.
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Aufbau einer Verbindung zur Datenbank import java.net.URL; import java.sql.*; class JDBCExample.
UML Begleitdokumentation des Projekts
Von der Sprache zum Programm
Programmiersprachen II Integration verschiedener Datenstrukturen
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
1.3 Klassen und Beziehungen
1.3 Klassen und Beziehungen
OOP Übung 6 Gruppe 4 | Anja Voeske Peter Isaak Christian Mader
Programmiervorkurs WS 2014/15 Methoden
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Das IT - Informationssystem
Dynamisches Laden von Klassen
Es gibt Klassen, die mit der Entwicklungsumgebung ausgeliefert werden
 Präsentation transkript:

A. Zündorf, SE Group Reverse Engineering K2 1 Ziele Heute Compilerbau Nachlese Ausnutzung von Laufzeittypinformation

A. Zündorf, SE Group Reverse Engineering K2 2 Compilerbau Nachlese reguläre Ausdrücke: einfach aber ungenau Compilerbau: –genaue Analyse der Struktur von Texten –Analyse von "statischer" Semantik per Symboltabelle (Cross Reference Table) –Datenflussanalyse: "read-from" Beziehung –Kontrollflulssanalyse: Ausführungsreihenfolgen –Slicing: wer hat hier zum Wert der Variablen X beigetragen? Übung zu Hause: –Importe mit Berücksichtigen –Unbekannte Klassen per ClassLoader suchen

A. Zündorf, SE Group Reverse Engineering K2 3 Compiler Compiler / Parser können von Compiler Compilern generiert werden z.B.: lex/yacc (veraltet), javacc (Standard für Java) Back-End in die Grammatik einbauen: Standard Back-End zur Erzeugung eines abstrakten Syntaxbaums z.B.: JTB (Java Tree Builder) Siehe Fujaba JavaParser Plugin

A. Zündorf, SE Group Reverse Engineering K2 4 Ausnutzung von Laufzeittypinformation schreibt Methode ClassFinder.addDotClassToSymbolTable() benutz java.lang.reflect –Class.forName (String) –Class. getDeclaredMethods () Method.getName ()... –Class.getDeclaredFields () Field.getName()... –Class.getInterfaces () –Class.getSuperClass () testet im Dobs ClassFinder.addDotClassToSymbolTable ("java.lang.System"),... Berücksichtigt im Parser die Importe Versucht unbekannte Klassen per ClassLoader zu laden (inklusive Attribute und Methoden)