David Schwarzbeck
David Schwarzbeck
-
Software Watermarking
(Own Funds)
Term: since 01.01.2016
URL: https://www2.cs.fau.de/research/SoftWater/Software watermarking means hiding selected features in code, in order to identify it or prove its authenticity. This is useful for fighting software piracy, but also for checking the correct distribution of open-source software (like for instance projects under the GNU license). The previously proposed methods assume that the watermark can be introduced at the time of software development, and require the understanding and input of the author for the embedding process. The goal of our research is the development of a watermarking framework that automates this process by introducing the watermark during the compilation phase into newly developed or even into legacy code. As a first approach we studied a method that is based on symbolic execution and function synthesis.In 2018, two bachelor theses analyzed two methods of symbolic execution and function synthesis in order to determine the most appropriate one for our approach. In 2019, we investigated the idea to use concolic execution in the context of the LLVM compiler infrastructure in order to hide a watermark in an unused register. Using a modified register allocation, one register can be reserved for storing the watermark. In 2020, we extended the framework (now called LLWM) for automatically embedding software watermarks into source code (based on the LLVM compiler infrastructure) with further dynamic methods. The newly introduced methods rely on replacing/hiding jump targets and on call graph modifications. In 2021, we added other adapted, dynamic methods that have already been published, as well as a newly developed method to LLWM. The added methods are based, among other things, on the conversion of conditional constructs into semantically equivalent loops or on the integration of hash functions, that leave the functionality of the program unchanged but increase its resilience. Our newly developed method IR-Mark now not only specifically selects the functions in which the code generator avoids using a certain register. IR-Mark now adds some dynamic computation of fake values that makes use of this register to blurr what is going on. There is a publication on both LLWM and IR-Mark. In 2022, we added another adapted procedure to the LLWM framework. The method uses exception handling to hide the watermark. In 2023, we adapted more methods to expand the LLWM framework. These include embedding techniques based on principles of number theory and aliasing.In 2024, we developed three new watermarking techniques: Register Expansion, SemaCall, and SideData.
They construct hash-like arithmetics that generate a watermarking message from a secret key. The first two techniques have been published in the paper "Register Expansion and SemaCall: 2 Low-overhead Dynamic Watermarks Suitable for Automation in LLVM" in the proceedings of the CheckMATE'24 workshop in Salt Lake City. We wrote an extended version containing the SideData watermark, currently under peer review for the DTRAP journal.
Ausgewählte Kapitel aus dem Übersetzerbau
Basic data
Title | Ausgewählte Kapitel aus dem Übersetzerbau |
---|---|
Short text | inf2-ueb3 |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Es ist keine Anmeldung erforderlich.
Parallel groups / dates
In der Vorlesung werden Aspekte des Übersetzerbaus beleuchtet, die über die Vorlesungen "Grundlagen des Übersetzerbaus" und "Optimierungen in Übersetzern" hinausgehen.
Voraussichtliche Themen sind:
- Übersetzer u. Optimierungen für funktionale Programmiersprachen
- Übersetzung aspektorientierter Programmiersprachen
- Erkennung von Wettlaufsituationen
- Software Watermarking
- Statische Analyse und symbolische Ausführung
- Binden von Objektcode und Unterstützung für dynamische Bibliotheken
- Strategien zur Ausnahmebehandlung
- Just-in-Time-Übersetzer
- Speicherverwaltung und Speicherbereinigung
- LLVM
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt.
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | Deutsch |
Responsible |
Prof. Dr. Michael Philippsen Tobias Heineken David Schwarzbeck Lukas Rotsching |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Fri, 10:15 - 11:45 | 17.10.2025 - 06.02.2026 | 26.12.2025 19.12.2025 02.01.2026 |
|
11302.02.133 |
Grundlagen des Übersetzerbaus
Basic data
Title | Grundlagen des Übersetzerbaus |
---|---|
Short text | inf2-ueb |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Voraussetzung zur Teilnahme an der Modulprüfung ist die erfolgreiche Bearbeitung der Übungsaufgaben.
Parallel groups / dates
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | Deutsch |
Responsible |
Prof. Dr. Michael Philippsen Tobias Heineken David Schwarzbeck |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Wed, 12:15 - 13:45 | 15.10.2025 - 04.02.2026 | 31.12.2025 24.12.2025 |
|
11301.00.005 |
Parallele und Funktionale Programmierung
Basic data
Title | Parallele und Funktionale Programmierung |
---|---|
Short text | PFP |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Parallel groups / dates
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt.
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | Deutsch |
Responsible |
Dr.-Ing. Norbert Oster Prof. Dr. Michael Philippsen David Schwarzbeck |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Tue, 12:15 - 13:45 | 14.10.2025 - 03.02.2026 | 06.01.2026 30.12.2025 23.12.2025 |
|
11907.01.030 |
Übungen zu Ausgewählte Kapitel aus dem Übersetzerbau
Basic data
Title | Übungen zu Ausgewählte Kapitel aus dem Übersetzerbau |
---|---|
Short text | inf2-ueb3-ex |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Blockveranstaltung n.V. nach der Vorlesungszeit.
Parallel groups / dates
Die Übungen zu Übersetzerbau 3 stellen eine Ergänzung zur Vorlesung dar. In der Vorlesung wird unter anderem die Architektur und Funktionsweise einer virtuellen Maschine beleuchtet. In den Übungen soll dies praktisch umgesetzt werden. Hierzu sollen die Studenten in einer Blockveranstaltung eine kleine virtuelle Maschine selbst implementieren. Den Anfang bildet das Einlesen des Byte-Codes und am Ende soll ein funktionsfähiger optimierender Just-in-Time-Übersetzer entstehen.
Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt.
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | Deutsch |
Responsible |
Tobias Heineken David Schwarzbeck Prof. Dr. Michael Philippsen Lukas Rotsching |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
Blockveranstaltung Mon, 09:00 - 16:00 | 23.03.2026 - 27.03.2026 |
|
11302.02.135 |
Übungen zu Grundlagen des Übersetzerbaus
Basic data
Title | Übungen zu Grundlagen des Übersetzerbaus |
---|---|
Short text | inf2-ueb-ex |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Parallel groups / dates
Im Rahmen der Übungen werden die in der Vorlesung vorgestellten Konzepte und Techniken zur Implementierung eines Übersetzers in die Praxis umgesetzt. Ziel der Übungen ist es, bis zum Ende des Semesters einen funktionsfähigen Übersetzer für die Beispiel-Programmiersprache e2 zu implementieren. Die hierfür nötigen zusätzlichen Kenntnisse (z.B. Grundlagen des Assemblers für x86-64) werden in den Tafelübungen vermittelt. Die im Laufe des Semesters zu erreichenden Meilensteine sind im StudOn-Eintrag der Vorlesung aufgelistet. Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt.
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | Deutsch |
Responsible |
Tobias Heineken Prof. Dr. Michael Philippsen David Schwarzbeck Lukas Rotsching |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Tue, 16:15 - 17:45 | 14.10.2025 - 03.02.2026 | 23.12.2025 06.01.2026 30.12.2025 |
|
11302.02.133 | |
wöchentlich Tue, 12:15 - 13:45 | 14.10.2025 - 03.02.2026 | 23.12.2025 06.01.2026 30.12.2025 |
|
11302.00.152 |
Im Rahmen der Übungen werden die in der Vorlesung vorgestellten Konzepte und Techniken zur Implementierung eines Übersetzers in die Praxis umgesetzt. Ziel der Übungen ist es, bis zum Ende des Semesters einen funktionsfähigen Übersetzer für die Beispiel-Programmiersprache e2 zu implementieren. Die hierfür nötigen zusätzlichen Kenntnisse (z.B. Grundlagen des Assemblers für x86-64) werden in den Tafelübungen vermittelt. Die im Laufe des Semesters zu erreichenden Meilensteine sind im StudOn-Eintrag der Vorlesung aufgelistet. Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt.
2. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | Deutsch |
Responsible |
Tobias Heineken Prof. Dr. Michael Philippsen David Schwarzbeck Lukas Rotsching |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Fri, 12:15 - 13:45 | 17.10.2025 - 06.02.2026 | 26.12.2025 02.01.2026 19.12.2025 |
|
11302.02.133 |
Im Rahmen der Übungen werden die in der Vorlesung vorgestellten Konzepte und Techniken zur Implementierung eines Übersetzers in die Praxis umgesetzt. Ziel der Übungen ist es, bis zum Ende des Semesters einen funktionsfähigen Übersetzer für die Beispiel-Programmiersprache e2 zu implementieren. Die hierfür nötigen zusätzlichen Kenntnisse (z.B. Grundlagen des Assemblers für x86-64) werden in den Tafelübungen vermittelt. Die im Laufe des Semesters zu erreichenden Meilensteine sind im StudOn-Eintrag der Vorlesung aufgelistet. Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt.
3. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | Deutsch |
Responsible |
Prof. Dr. Michael Philippsen Tobias Heineken David Schwarzbeck Lukas Rotsching |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Tue, 16:15 - 17:45 | 14.10.2025 - 03.02.2026 | 06.01.2026 23.12.2025 30.12.2025 |
|
11302.02.134 |
Übungen zu Parallele und Funktionale Programmierung
Basic data
Title | Übungen zu Parallele und Funktionale Programmierung |
---|---|
Short text | UePFP |
Module frequency | nur im Wintersemester |
Semester hours per week | 2 |
Parallel groups / dates
1. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | Deutsch |
Responsible |
Dr.-Ing. Norbert Oster David Schwarzbeck Prof. Dr. Michael Philippsen Lukas Rotsching |
Maximum number of participants: 40
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Wed, 08:15 - 09:45 | 15.10.2025 - 04.02.2026 | 31.12.2025 24.12.2025 |
11302.02.133 |
2. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | Deutsch |
Responsible |
Dr.-Ing. Norbert Oster Prof. Dr. Michael Philippsen David Schwarzbeck Lukas Rotsching |
Maximum number of participants: 40
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Fri, 14:15 - 15:45 | 17.10.2025 - 06.02.2026 | 02.01.2026 19.12.2025 26.12.2025 |
11302.02.133 |
3. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | Deutsch |
Responsible |
Dr.-Ing. Norbert Oster David Schwarzbeck Prof. Dr. Michael Philippsen Lukas Rotsching |
Maximum number of participants: 40
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Mon, 10:15 - 11:45 | 13.10.2025 - 02.02.2026 | 29.12.2025 22.12.2025 05.01.2026 |
11302.02.133 |
4. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | Deutsch |
Responsible |
Prof. Dr. Michael Philippsen Dr.-Ing. Norbert Oster David Schwarzbeck Lukas Rotsching |
Maximum number of participants: 40
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Wed, 16:15 - 17:45 | 15.10.2025 - 04.02.2026 | 31.12.2025 24.12.2025 |
11302.02.133 |
5. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | Deutsch |
Responsible |
Prof. Dr. Michael Philippsen Dr.-Ing. Norbert Oster David Schwarzbeck Lukas Rotsching |
Maximum number of participants: 40
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Tue, 14:15 - 15:45 | 14.10.2025 - 03.02.2026 | 30.12.2025 06.01.2026 23.12.2025 |
11302.00.152 |
6. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | Deutsch |
Responsible |
Prof. Dr. Michael Philippsen Dr.-Ing. Norbert Oster David Schwarzbeck Lukas Rotsching |
Maximum number of participants: 40
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Wed, 10:15 - 11:45 | 15.10.2025 - 04.02.2026 | 24.12.2025 31.12.2025 |
11302.02.133 |
12. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | Deutsch |
Responsible |
David Schwarzbeck Prof. Dr. Michael Philippsen Dr.-Ing. Norbert Oster Lukas Rotsching |
Maximum number of participants: 25
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Thu, 14:00 - 16:00 | 16.10.2025 - 05.02.2026 | 25.12.2025 01.01.2026 |
11302.00.153 | ||
wöchentlich Fri, 14:15 - 15:45 | 17.10.2025 - 06.02.2026 | 19.12.2025 26.12.2025 02.01.2026 |
11302.00.153 |
13. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | Deutsch |
Responsible |
Dr.-Ing. Norbert Oster David Schwarzbeck Prof. Dr. Michael Philippsen Lukas Rotsching |
Maximum number of participants: 25
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Tue, 14:00 - 16:00 | 14.10.2025 - 03.02.2026 | 30.12.2025 06.01.2026 23.12.2025 |
11302.00.153 |
14. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | Deutsch |
Responsible |
Prof. Dr. Michael Philippsen David Schwarzbeck Dr.-Ing. Norbert Oster Lukas Rotsching |
Maximum number of participants: 25
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Wed, 14:00 - 16:00 | 15.10.2025 - 04.02.2026 | 24.12.2025 31.12.2025 |
11302.00.153 |
15. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | Deutsch |
Responsible |
Dr.-Ing. Norbert Oster Prof. Dr. Michael Philippsen David Schwarzbeck Lukas Rotsching |
Maximum number of participants: 25
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Thu, 16:00 - 18:00 | 16.10.2025 - 05.02.2026 | 01.01.2026 25.12.2025 |
11302.00.153 |
11. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | Deutsch |
Responsible |
David Schwarzbeck Dr.-Ing. Norbert Oster Prof. Dr. Michael Philippsen Lukas Rotsching |
Maximum number of participants: 25
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Wed, 10:00 - 12:00 | 15.10.2025 - 04.02.2026 | 31.12.2025 24.12.2025 |
11302.00.153 |
7. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | Deutsch |
Responsible |
Prof. Dr. Michael Philippsen Dr.-Ing. Norbert Oster David Schwarzbeck Lukas Rotsching |
Maximum number of participants: 40
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Thu, 08:15 - 09:45 | 16.10.2025 - 05.02.2026 | 01.01.2026 25.12.2025 |
11302.02.133 |
16. Parallelgruppe
Semester hours per week | 2 |
---|---|
Teaching language | Deutsch |
Responsible |
David Schwarzbeck Prof. Dr. Michael Philippsen Dr.-Ing. Norbert Oster Lukas Rotsching |
Date and Time | Start date - End date | Cancellation date | Lecturer(s) | Comment | Room |
---|---|---|---|---|---|
wöchentlich Thu, 10:15 - 11:45 | 16.10.2025 - 05.02.2026 | 25.12.2025 01.01.2026 |
14201.00.001 |
2025
Register Expansion, SemaCall, and SideData: Three Low-Overhead Dynamic Watermarks Suitable for Automation in LLVM
In: Digital Threats: Research and Practice 6 (2025), S. 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 (Master thesis, 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)
, , , , :
Please use the available filters to search for specific entries.