Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Filabert Woerner Geändert vor über 10 Jahren
1
A. Zündorf, SE Group Reverse Engineering K2 1 Ziele Heute Compilerbau Nachlese Ausnutzung von Laufzeittypinformation
2
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: –Jeder: selber die Parserübungen programmieren –Importe mit Berücksichtigen –if / while / for mit analysieren: wird in jedem Fall ein return ausgeführt?
3
A. Zündorf, SE Group Reverse Engineering K2 3 Compiler Compiler / Parser können von Compiler Compilern generiert werden z.B.: lex/yacc (veraltet), Eli, 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
4
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"),...
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.