
David Schwarzbeck (M.Sc.)
Wissenschaftliche Mitarbeitende
Adresse
Kontakt
Software-Wasserzeichen
(Projekt aus Eigenmitteln)Project leader:
Term: 01.01.2016 - 30.11.2028
Acronym: SoftWater
URL: https://www.ps.tf.fau.de/forschung/forschungsprojekte/softwater/Unter Software-Wasserzeichnen versteht man das Verstecken von ausgewählten Merkmalen in Programme, um sie entweder zu identifizieren oder zu authentifizieren. Das ist nützlich im Rahmen der Bekämpfung von Software-Piraterie, aber auch um die richtige Nutzung von Open-Source Projekten (wie zum Beispiel unter der GNU Lizenz stehende Projekte) zu überprüfen. Die bisherigen Ansätze gehen davon aus, dass das Wasserzeichen bei der Entwicklung des Codes hinzugefügt wird und benötigen somit das Verständnis und den Beitrag der Programmierer für den Einbettungsprozess. Ziel unseres Forschungsprojekts ist es, ein Wasserzeichen-Framework zu entwickeln, dessen Verfahren automatisiert beim Übersetzen des Programms Wasserzeichen sowohl in neu entwickelte als auch in bestehende Programme hinzufügen. Als ersten Ansatz untersuchten wir eine Wasserzeichenmethode, die auf einer symbolischen Ausführung und anschließender Funktionsynthese basiert.
Im Jahr 2018 wurden im Rahmen von zwei Bachelorarbeiten Methoden zur symbolischen Ausführung und Funktionssynthese untersucht, um zu ermitteln, welche sich für unseren Ansatz am Besten eignet.
Im Jahr 2019 wurde ein Ansatz auf Basis der LLVM Compiler Infrastruktur untersucht, der mittels konkolischer Ausführung (concolic execution, eine Kombination aus symbolischer und konkreter Ausführung) ein Wasserzeichen in einem ungenutzten Hardwareregister versteckt. Hierzu wurde der LLVM-Registerallokator dahingehend verändert, dass er ein Register für das Wasserzeichen freihält.
Im Jahr 2020 wurde das inzwischen LLWM genannte Rahmenprogramm für das automatische Einfügen von Software-Wasserzeichen in Quellcode auf Basis der LLVM Compiler Infrastruktur um weitere dynamische Verfahren erweitert. Grundlage der hinzugefügten Verfahren sind, unter anderem, das Ersetzen/Verschleiern von Sprungadressen sowie Modifikationen des Aufrufgraphen.
Im Jahr 2021 wurde das Rahmenprogramm LLWM um weitere angepasste, bereits in der Literatur bekannte, dynamische Verfahren sowie um das eigene Verfahren erweitert, das wir nun IR-Mark nennen Die hinzugefügten Verfahren basieren unter anderem auf der Umwandlung von bedingten Konstrukten in semantisch äquivalenten Schleifen oder auf Integrieren von Hashfunktionen, die die Funktionalität des Programms unverändert lassen, die Widerstandsfähigkeit aber erhöhen. IR-Mark wählt nun nicht nur gezielt die wenigen Funktionen aus, in denen die Registerverwendung bei der Code-Erzeugung verändert wird, sondern umfasst nun auch dynamische Aspekte um in den freigehaltenen Registern sinnvoll erscheinende Tarnwerte zu berechnen. Ein Artikel über LLWM und IR-Mark konnte publiziert werden.
Im Jahr 2022 wurde das Rahmenprogramm LLWM um ein weiteres angepasstes Verfahren ergänzt. Die Methode nutzt Ausnahmebehandlungen, um das Wasserzeichen zu tarnen.
Im Jahr 2023 wurden mehr Methoden angepasst, um das LLWM-Framework zu erweitern. Hierzu zählen Techniken zum Einbetten, die auf Prinzipien der Zahlentheorie und des Aliasings beruhen.
Im Jahr 2024 wurden drei neue Wasserzeichen entwickelt: Register Expansion, SemaCall und SideData. Diese Techniken konstruieren streufunktionsartige arithmetische Berechnungen, um während der Laufzeit einen Schlüsselwert in die Wasserzeichennachricht umzurechnen. Die ersten beiden Techniken wurden in dem Papier „Register Expansion and SemaCall: 2 Low-overhead Dynamic Watermarks Suitable for Automation in LLVM" auf dem CheckMATE'24 Workshop in Salt Lake City publiziert.
Im Jahr 2025 wurde das erweiterte Papier "Register Expansion, SemaCall, and SideData: Three Low-Overhead Dynamic Watermarks Suitable for Automation in LLVM" in dem DTRAP-Journal publiziert. Es wurde eine neue Wasserzeichentechnik entwickelt, die ein unentscheidbares Problem benutzt, um Wasserzeichen in Programme einzubetten. Es wird an automatisierten Angriffstechniken auf Basis von LLMs (Large Language Model) und Testfall Reduzierern gearbeitet, die erlauben, die Resilienz einzelner Wasserzeichentechniken empirisch zu vermessen.
Optimierungen in Übersetzern
Grunddaten
| Titel | Optimierungen in Übersetzern |
|---|---|
| Kurztext | inf2-ue2 |
| Turnus des Angebots | nur im Sommersemester |
| Semesterwochenstunden | 2 |
Voraussetzung zur Teilnahme an der Prüfung ist die erfolgreiche Bearbeitung der Übungsaufgaben.
Parallelgruppen / Termine
In der Vorlesung werden ausgewählte Kapitel aus dem Übersetzerbau besprochen.
Schwerpunktmäßig werden Optimierungstechniken für die Übersetzung imperativer Programmiersprachen diskutiert, insbesondere solche, die für Hochleistungsrechner und Parallelrechner von Bedeutung sind. Begleitend dazu werden einige oft verwendere Techniken und Repräsetationsformen vorgestellt, die erforderlich sind, um die zur Optimierung benötigten Informationen geeignet zu berechnen bzw. zu verwalten.
Die folgenden Stichworte geben einen Überblick über die in der Vorlesung angesprochenen Einzelthemen:
- Abhängigkeitsanalyse, Abhängigkeitsgraph, Array-Index-Analyse, SSA Graph, Steuerungsflußgraph, Dominatoren,
- datenflußbasierte Schleifentransformationen: Strength Reduction, Elimination von Induktionsvariablen, Verschiebung von schleifeninvariantem Code, Schleifenentzweigung,
- Schleifenumordnungen: Schleifenvertauschung, Wellenparallelisierung, Schleifenumkehr, Strip Mining, Kachelbildung, Schleifenaufspaltung, Schleifenvereinigung,
- Schleifenrestrukturierung: Ausrollen, Schleifenzusammenfassung, Schleifenersetzung: Reduktion, Schleifenmustererkennung,
- Speicherzugriffstransformationen: Array-Padding, Speicherbank-Konflikte, Skalarexpansion und Array-Kontraktion,
- Partielle Auswertung: Konstantenpropagierung, Konstantenfaltung, Algebraische Vereinfachungen, Strength Reduction,
- Redundanzentfernung: unerreichter Code, unnötiger Code, tote Variablen, gemeinsame Teilausdrücke,
- Prozeduraufruftransformationen: Blattprozeduren, Inlining, Prozedurduplizierung, Prozedureinbettung, Rekursionselimination, Funktionsvorauswertung,
- Optimierungen für Parallelrechner: Datenaufspaltung, Skalarreplikation, Arrayreplikation, Daten- und Aktivitätsausrichtung, Guards, Botschaftenkombination, Latenzzeitverbergung, Prefetch und Poststore, Synchronpunktelimination,
- Pointer- und Aliasanalyse
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt.
1. Parallelgruppe
| Semesterwochenstunden | 2 |
|---|---|
| Lehrsprache | Deutsch |
| Verantwortliche/-r |
Tobias Heineken David Schwarzbeck Prof. Dr. Michael Philippsen |
| Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
|---|---|---|---|---|---|
| wöchentlich Mi, 08:15 - 09:45 | 15.04.2026 - 15.07.2026 |
|
11301.00.005 |
Übungen zu Optimierungen in Übersetzern
Grunddaten
| Titel | Übungen zu Optimierungen in Übersetzern |
|---|---|
| Kurztext | inf2-ueb-uebersetzer |
| Turnus des Angebots | nur im Sommersemester |
| Semesterwochenstunden | 2 |
Zeit und Ort für die Übungen werden in der ersten Vorlesungsstunde vereinbart.
Parallelgruppen / Termine
In der Übung werden die in der Vorlesung vorgestellten Konzepte und Algorithmen zur Optimierung von Programmen durch einen Übersetzer wiederholt und vertieft.
Im Rahmen der Projektübungen erweitern die Übungsteilnehmer den in Übersetzerbau 1 implementierten Übersetzer um eine Auswahl der vorgestellten Algorithmen.
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt.
1. Parallelgruppe
| Semesterwochenstunden | 2 |
|---|---|
| Lehrsprache | Deutsch |
| Verantwortliche/-r |
Prof. Dr. Michael Philippsen Tobias Heineken David Schwarzbeck |
| Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
|---|---|---|---|---|---|
| wöchentlich Mi, 14:15 - 15:45 | 15.04.2026 - 15.07.2026 |
|
11302.02.133 |
In der Übung werden die in der Vorlesung vorgestellten Konzepte und Algorithmen zur Optimierung von Programmen durch einen Übersetzer wiederholt und vertieft.
Im Rahmen der Projektübungen erweitern die Übungsteilnehmer den in Übersetzerbau 1 implementierten Übersetzer um eine Auswahl der vorgestellten Algorithmen.
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt.
2. Parallelgruppe
| Semesterwochenstunden | 2 |
|---|---|
| Lehrsprache | Deutsch |
| Verantwortliche/-r |
Prof. Dr. Michael Philippsen Tobias Heineken David Schwarzbeck |
| Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
|---|---|---|---|---|---|
| wöchentlich Mi, 10:15 - 11:45 | 22.04.2026 - 15.07.2026 |
|
11302.02.133 |
In der Übung werden die in der Vorlesung vorgestellten Konzepte und Algorithmen zur Optimierung von Programmen durch einen Übersetzer wiederholt und vertieft.
Im Rahmen der Projektübungen erweitern die Übungsteilnehmer den in Übersetzerbau 1 implementierten Übersetzer um eine Auswahl der vorgestellten Algorithmen.
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt.
3. Parallelgruppe
| Semesterwochenstunden | 2 |
|---|---|
| Lehrsprache | Deutsch |
| Verantwortliche/-r |
David Schwarzbeck Prof. Dr. Michael Philippsen Tobias Heineken |
| Zeitpunkt | Startdatum - Enddatum | Ausfalltermin | Durchführende/-r | Bemerkung | Raum |
|---|---|---|---|---|---|
| wöchentlich Mi, 12:15 - 13:45 | 15.04.2026 - 15.07.2026 |
|
11302.02.133 |
2025
- , , :
Register Expansion, SemaCall, and SideData: Three Low-Overhead Dynamic Watermarks Suitable for Automation in LLVM
In: Digital Threats: Research and Practice 6 (2025), p. 1-22
ISSN: 2576-5337
DOI: 10.1145/3743152
URL: https://dl.acm.org/doi/10.1145/3743152
BibTeX: Download
2024
- :
Erweiterung eines Rahmenprogramms für das automatische Einfügen von Software- Wasserzeichen in Quellcode (Masterarbeit, 2024)
URL: https://github.com/FAU-Inf2/LLWM/blob/main/semacall + register-expansion + sidedata/thesis-1.pdf
BibTeX: Download - , , :
Register Expansion and SemaCall: 2 Low-overhead Dynamic Watermarks Suitable for Automation in LLVM
ACM SIGSAC Conference on Computer and Communications Security (CCS'24), Workshop on Offensive and Defensive Techniques in the Context of Man At The End (MATE) attacks (Checkmate ’24) (Salt Lake City, UT, 18.10.2024 - 18.10.2024)
In: CheckMATE '24: Proceedings of the 2024 Research on offensive and defensive techniques in the context of Man At The End (MATE) attacks, New York: 2024
DOI: 10.1145/3689934.3690815
URL: https://dl.acm.org/doi/10.1145/3689934.3690815#
BibTeX: Download - , , , , :
Register Expansion and SemaCall: 2 low-overhead dynamic Watermarks suitable for Automation in LLVM [Source code and Raw Experiment data]
(2024)
DOI: 10.5281/zenodo.13337275
BibTeX: Download
(anderer) - , , , , :
Register Expansion, SemaCall, and SideData: 3 Low-overhead Dynamic Watermarks Suitable for Automation in LLVM [Source code and Raw Experiment data]
(2024)
DOI: 10.5281/zenodo.14234819
BibTeX: Download
(anderer)
Unsere Examensarbeiten werden in StudOn verwaltet.
Bitte verwenden Sie die verfügbaren Filter, um nach bestimmten Einträgen zu suchen.