In this project we are interested in developing a unifying theory and methodology
for the systematic design and evaluation of code steganography and obfuscation tools. These include
standard code obfuscation methodologies viewed as program transformations to protect code
designers from reverse engineering and software watermarking and fingerprinting for hiding sensitive
information in programs, e.g., for copyright protection. Code structure and sensitive information
is typically hidden by modifying data structures, code structure, semantics, and computational flow
in such a way that an observer is unable to extract it unless a given key is provided. Abstract interpretation
provides here the adequate model for reasoning about semantics at different levels of
abstraction and provides the most general setting in order to develop both a theoretic understanding
of basic aspects of semantic information hiding in programming languages and the description of
measures for the quality of information hiding (e.g., capacity, complexity, stealth, and resilience) as a
basis for a rigorous cost-benefit analysis in a well-defined formal setting. The project is intended to
develop a number of prototypical implementations and benchmarks, including novel obfuscation and
de-obfuscation techniques, based on abstract interpretation.