Metaprogramming ist in der Informatik die Erstellung von Computerprogrammen ("Metaprogramme"), die Computerprogramme erzeugen.
---------------------
Zitat Wikipedia
Ein internes Framework für Rapid Prototyping von Netzwerkprotokollen soll im Rahmen dieser Arbeit Export-Möglichkeiten bzw. Anbindung an externe Tools erhalten. Dafür ist es notwendig, die Framework internen Objekte automatisch in die Repräsentationsform einer Zielanwendung zu übersetzen. Dabei kann es sich um Skripte oder Konfigurationsdateien in unterschiedlichen Sprachen handeln.
Mögliche Zielanwendungen:
- WireShark verwendet in Lua geschriebene Dissektoren um Netzwerkdaten in einer für Menschen intuitiven Weise darzustellen.
- Fuddly ist ein Netzwerkfuzzer. Nachdem ein Protokoll einmalig in einem eigenen Format oder per Python Bindings hinterlegt wurde, können beliebige viele dem Format entsprechende oder auch abweichende Nachrichten erzeugt werden.
Auch andere Anwendungen könnten sich hierfür anbieten, die obige Liste kann also gerne auch mit eigenen Ideen erweitert werden.
Um möglichst offen für die Anbindung weiterer Tools zu bleiben, ist eine Hauptaufgabe ein möglichst generisches Framework zu entwickeln das für weitere Skriptsprachen und Konfigurationsformate leicht anpassbar ist.
Aufgaben:
- Untersuchung von möglichst allgemeinen Konzepten zu Metaprogrammierung
- (Weiter-) Entwicklung eines Metaprogramming Frameworks für Python
- Inklusion eines konkreten Tools/Frameworks mithilfe des Frameworks
Voraussetzungen:
- Erfahrung mit Python
- Kenntnisse im Bereich Computernetze
Optional:
- n/a
Kontakt:
Alexander Frank (alexander.frank@unibw.de)