Christian S. Collberg

dblp:c/ChristianSCollberg · DBLP profile ↗
← Back
33ranked-venue papers
18as first author
3since 2021 · last 2026
0000-0003-1301-7939ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 14 · 9 first-author · 3 since 2021Security and privacy · 10 · 3 first-authorHuman-computer interaction and ubiquitous computing · 3 · 2 first-authorTheory of computation · 2 · 2 first-authorArtificial intelligence and machine learning · 1 · 1 first-authorSystems, architecture and hardware · 1 · 1 first-authorDatabases, data management, data science and information retrieval · 1
YearPublicationVenuePosition
2026 Empirical studies on adversarial reverse engineering with students
Tab (Tianyi) Zhang, Bjorn De Sutter, Christian S. Collberg, Bart Coppens 0001, Waleed Mebane
Empir. Softw. Eng.3
2025 reAnalyst: Scalable annotation of reverse engineering activities
Tab (Tianyi) Zhang, Claire Taylor, Bart Coppens 0001, Waleed Mebane, Christian S. Collberg, Bjorn De Sutter
J. Syst. Softw.5
2024 Control-Flow Deobfuscation using Trace-Informed Compositional Program Synthesis
abstract
Code deobfuscation, which attempts to simplify code that has been intentionally obfuscated to prevent understanding, is a critical technique for downstream security analysis tasks like malware detection. While there has been significant prior work on code deobfuscation, most techniques either do not handle control flow obfuscations that modify control flow or they target specific classes of control flow obfuscations, making them unsuitable for handling new types of obfuscations or combinations of existing ones. In this paper, we study a new deobfuscation technique that is based on program synthesis and that can handle a broad class of control flow obfuscations. Given an obfuscated program P , our approach aims to synthesize a smallest program that is a control-flow reduction of P and that is semantically equivalent. Since our method does not assume knowledge about the types of obfuscations that have been applied to the original program, the underlying synthesis problem ends up being very challenging. To address this challenge, we propose a novel trace-informed compositional synthesis algorithm that leverages hints present in dynamic traces of the obfuscated program to decompose the synthesis problem into a set of simpler subproblems. In particular, we show how dynamic traces can be useful for inferring a suitable control-flow skeleton of the deobfuscated program and performing independent synthesis of each basic block. We have implemented this approach in a tool called Chisel and evaluate it on 546 benchmarks that have been obfuscated using combinations of six different obfuscation techniques. Our evaluation shows that our approach is effective and that it produces code that is almost identical (modulo variable renaming) to the original (non-obfuscated) program in 86% of cases. Our evaluation also shows that Chisel significantly outperforms existing techniques.
Benjamin Mariano, Ziteng Wang 0001, Shankara Pailoor, Christian S. Collberg, Isil Dillig
Proc. ACM Program. Lang.4
2018 Code Obfuscation: Why is This Still a Thing?
abstract
Early developments in code obfuscation were chiefly motivated by the needs of Digital Rights Management (DRM). Other suggested applications included intellectual property protection of software and code diversification to combat the monoculture problem of operating systems.
Christian S. Collberg
CODASPY1
2018 Probabilistic Obfuscation Through Covert Channels
abstract
This paper presents a program obfuscation framework that uses covert channels through the program's execution environment to obfuscate information flow through the program. Unlike prior works on obfuscation, the use of covert channels removes visible information flows from the computation of the program and reroutes them through the program's runtime system and/or the operating system. This renders these information flows, and the corresponding control and data dependencies, invisible to program analysis tools such as symbolic execution engines. Additionally, we present the idea of probabilistic obfuscation which uses imperfect covert channels to leak information with some probabilistic guarantees. Experimental evaluation of our approach against state of the art detection and analysis techniques show the engines are not well-equipped to handle these obfuscations, particularly those of the probabilistic variety.
Jon Stephens, Babak Yadegari, Christian S. Collberg, Saumya K. Debray, Carlos Scheidegger
EuroS&P3
2017 Predicting the Resilience of Obfuscated Code Against Symbolic Execution Attacks via Machine Learning
Sebastian Banescu, Christian S. Collberg, Alexander Pretschner
USENIX Security Symposium2
2016 Code obfuscation against symbolic execution attacks
Sebastian Banescu, Christian S. Collberg, Vijay Ganesh 0001, Zack Newsham, Alexander Pretschner
ACSAC2
2015 A Possible Solution for Privacy Preserving Cloud Data Storage
abstract
Despite the economic advantages of cloud data storage, many corporations have not yet migrated to this technology. While corporations in the financial sector cite data security as a reason, corporations in other sectors cite privacy concerns for this reluctance. In this paper, we propose a possible solution for this problem inspired by the HIPAA safe harbor methodology for data anonymization. The proposed technique involves using a hash function that uniquely identifies the data and then splitting data across multiple cloud providers. We propose that such a "Good Enough" approach to privacy-preserving cloud data storage is both technologically feasible and financially advantageous. Following this approach addresses concerns about privacy harms resulting from accidental or deliberate data spills from cloud providers. The "Good Enough" method will enable firms to move their data into the cloud without incurring privacy risks, enabling them to realize the economic advantages provided by the pay-per-use model of cloud data storage.
Mithun Paul, Christian S. Collberg, Derek E. Bambauer
IC2E2
2012 Distributed application tamper detection via continuous software updates
abstract
We present a new general technique for protecting clients in distributed systems against Remote Man-at-the-end (R-MATE) attacks. Such attacks occur in settings where an adversary has physical access to an untrusted client device and can obtain an advantage from tampering with the hardware itself or the software it contains.
Christian S. Collberg, Sam Martin, Jonathan Myers, Jasvir Nagra
ACSAC1
2009 A semi-dynamic multiple watermarking schemefor java applications
abstract
Software protection and security has been a more and more important issue. In order to prevent software from unauthorized use and modification, a great many techniques have been proposed and developed. In this paper, we address this issue through a prevention technique called software watermarking, and we propose a novel software watermarking scheme, which can embed multiple non-interfering watermarks into the same program. Unlike published schemes, this scheme encodes the watermark into mapping functions and then embeds the mapping codes, which are generated from these functions, into the program at the articulation points of its control flow graph. The extraction in this scheme, which is based on dynamically loading a reconstructed program to recover the watermark, is also a novel approach to the software watermarking field. Experimental results indicate that the size and performance overheads caused by this scheme can keep steady.
Changjiang Zhang, Jianmin Wang 0001, Clark D. Thomborson, Chaokun Wang, Christian S. Collberg
Digital Rights Management Workshop5
2009 Trading-off security and performance in barrier slicing for remote software entrusting
Mariano Ceccato, Mila Dalla Preda, Jasvir Nagra, Christian S. Collberg, Paolo Tonella
Autom. Softw. Eng.4
2009 More on graph theoretic software watermarks: Implementation, analysis, and attacks
Christian S. Collberg, Andrew Huntwork, Edward Carter, Gregg M. Townsend, Michael Stepp
Inf. Softw. Technol.1
2007 An empirical study of Java bytecode programs
abstract
Abstract We present a study of the static structure of real Java bytecode programs. A total of 1132 Java jar‐files were collected from the Internet and analyzed. In addition to simple counts (number of methods per class, number of bytecode instructions per method, etc.), structural metrics such as the complexity of control‐flow and inheritance graphs were computed. We believe this study will be valuable in the design of future programming languages and virtual machine instruction sets, as well as in the efficient implementation of compilers and other language processors. Copyright © 2006 John Wiley & Sons, Ltd.
Christian S. Collberg, Ginger Myles, Michael Stepp
Softw. Pract. Exp.1
2007 Dynamic graph-based software fingerprinting
abstract
Fingerprinting embeds a secret message into a cover message. In media fingerprinting, the secret is usually a copyright notice and the cover a digital image. Fingerprinting an object discourages intellectual property theft, or when such theft has occurred, allows us to prove ownership. The Software Fingerprinting problem can be described as follows. Embed a structure W into a program P such that: W can be reliably located and extracted from P even after P has been subjected to code transformations such as translation, optimization and obfuscation; W is stealthy; W has a high data rate; embedding W into P does not adversely affect the performance of P ; and W has a mathematical property that allows us to argue that its presence in P is the result of deliberate actions. In this article, we describe a software fingerprinting technique in which a dynamic graph fingerprint is stored in the execution state of a program. Because of the hardness of pointer alias analysis such fingerprints are difficult to attack automatically.
Christian S. Collberg, Clark D. Thomborson, Gregg M. Townsend
ACM Trans. Program. Lang. Syst.1
2005 SLINKY: Static Linking Reloaded
Christian S. Collberg, John H. Hartman, Sridivya Babu, Sharath K. Udupa
USENIX ATC, General Track1
2005 Protecting Against Unexpected System Calls
Cullen Linn, Mohan Rajagopalan, Scott Baker, Christian S. Collberg, Saumya K. Debray, John H. Hartman
USENIX Security Symposium4
2005 Software watermarking in the frequency domain: Implementation, analysis, and attacks
abstract
In this paper we analyze the SHKQ software watermarking algorithm, originally due to Stern, Hachez, Koeune and Quisquater. The algorithm has been implemented within the SANDMARK framework, a system designed to allow effective study of software protec
Christian S. Collberg, Tapas Ranjan Sahoo
J. Comput. Secur.1
2005 The evaluation of two software watermarking algorithms
abstract
Abstract In this paper we analyze the effectiveness of two different software watermarking algorithms. The first is an algorithm proposed by Akito Monden et al. and the second an algorithm proposed by Robert L. Davidson and Nathan Myhrvold of the Microsoft Corporation. We have implemented these techniques within the SANDMARK framework, a system designed to study the effectiveness of software protection algorithms on Java bytecode. To the best of our knowledge this is the first implementation and empirical evaluation of these algorithms with respect to a set of properties such as bit‐rate, stealth, and resilience to attack. We demonstrate through the use of the SANDMARK framework that both of these algorithms have a high bit‐rate but are unstealthy and easy to attack. Copyright © 2005 John Wiley & Sons, Ltd.
Ginger Myles, Christian S. Collberg, Zachary V. Heidepriem, Armand Navabi
Softw. Pract. Exp.2
2004 The Obfuscation Executive
Kelly Heffner, Christian S. Collberg
ISC2
2004 Detecting Software Theft via Whole Program Path Birthmarks
Ginger Myles, Christian S. Collberg
ISC2
2004 Dynamic path-based software watermarking
abstract
Software watermarking is a tool used to combat software piracy by embedding identifying information into a program. Most existing proposals for software watermarking have the shortcoming that the mark can be destroyed via fairly straightforward semantics-preserving code transformations. This paper introduces path-based watermarking, a new approach to software watermarking based on the dynamic branching behavior of programs. The advantage of this technique is that error-correcting and tamper-proofing techniques can be used to make path-based watermarks resilient against a wide variety of attacks. Experimental results, using both Java bytecode and IA-32 native code, indicate that even relatively large watermarks can be embedded into programs at modest cost.
Christian S. Collberg, Edward Carter, Saumya K. Debray, Andrew Huntwork, John D. Kececioglu, Cullen Linn, Michael Stepp
PLDI1
2004 AlgoVista: an algorithmic search tool in an educational setting
abstract
A?goVista is a web-based search engine that assists programmers to find algorithms and implementations that solve specific problems. The search engine is not keyword based but rather requires users to provide (input ? output) samples that describe the behavior of their needed algorithm. The system is easy to use. To search for a particular algorithm or classify a combinatorial structure a user simply draws the query in a drawing pane on a web browser. The result of the search is a list of links to web resources describing or providing implementations of the algorithm.A?goVista has many interesting applications in an educational setting. The search engine can help research students classify obscure problems and locate algorithms that would otherwise be hard to find in textbooks. Students can also add calls in their own programs to A?goVista's database of executable problem specifications in order to dynamically check the correctness of their programs. Finally, instructors can use A?goVista to set novel assignments in algorithms and data structures classes.This paper briefly describes A?goVista and reports on its use in two algorithms and theory classes, one at the undergraduate and one at the graduate level.
Christian S. Collberg, Stephen G. Kobourov, Suzanne Westbrook
SIGCSE1
2004 Tamper Detection in Audit Logs
Richard T. Snodgrass, Shilong (Stanley) Yao, Christian S. Collberg
VLDB3
2004 Problem identification using program checking
Christian S. Collberg, Todd A. Proebsting
Discret. Appl. Math.1
2003 TetraTetris: A Study of Multi-User Touch-Based Interaction Using DiamondTouch
Stephen G. Kobourov, Christian S. Collberg, Steven Kobes, Ben Smith, S. Trush, Gary V. Yee
INTERACT2
2003 Graph-Based Approaches to Software Watermarking
Christian S. Collberg, Stephen G. Kobourov, Edward Carter, Clark D. Thomborson
WG1
2002 A Fuzzy Visual Query Language for a Domain-Specific Web Search Engine
Christian S. Collberg
Diagrams1
2002 AlambdagoVista: a tool to enhance algorithm design and understanding
abstract
AλgoVista is a web-based search engine that assists programmers to and algorithms and implementations that solve specific problems.The search engine is not keyword based but rather requires users to provide (input = ?output)samples that describe the behavior of their needed algorithm. AλgoVista is based on a technique known as program check-ing pioneered in the last decade by Manuel Blum [1 ]as an alternative to program verification and testing.Program checking extends programs with checkers to allow them to verify the correctness of the results they compute.
Christian S. Collberg, Stephen G. Kobourov, Jessica Miller, Suzanne Westbrook
ITiCSE1
2002 Automatic derivation of compiler machine descriptions
abstract
We describe a method designed to significantly reduce the effort required to retarget a compiler to a new architecture, while at the same time producing fast and effective compilers. The basic idea is to use the native C compiler at compiler construction time to discover architectural features of the new architecture. From this information a formal machine description is produced. Given this machine description, a native code-generator can be generated by a back-end generator such as BEG or burg. A prototype automatic Architecture Discovery Tool (called ADT) has been implemented. This tool is completely automatic and requires minimal input from the user. Given the Internet address of the target machine and the command-lines by which the native C compiler, assembler, and linker are invoked, ADT will generate a BEG machine specification containing the register set, addressing modes, instruction set, and instruction timings for the architecture. The current version of ADT is general enough to produce machine descriptions for the integer instruction sets of common RISC and CISC architectures such as the Sun SPARC, Digital Alpha, MIPS, DEC VAX, and Intel x86.
Christian S. Collberg
ACM Trans. Program. Lang. Syst.1
2002 Watermarking, Tamper-Proofing, and Obfuscation-Tools for Software Protection
abstract
We identify three types of attack on the intellectual property contained in software and three corresponding technical defenses. A defense against reverse engineering is obfuscation, a process that renders software unintelligible but still functional. A defense against software piracy is watermarking, a process that makes it possible to determine the origin of software. A defense against tampering is tamper-proofing, so that unauthorized modifications to software (for example, to remove a watermark) will result in nonfunctional code. We briefly survey the available technology for each type of defense.
Christian S. Collberg, Clark D. Thomborson
IEEE Trans. Software Eng.1
1999 Software Watermarking: Models and Dynamic Embeddings
abstract
Watermarking embeds a secret message into a cover message. In media watermarking the secret is usually a copyright notice and the cover a digital image. Watermarking an object discourages intellectual property theft, or when such theft has occurred, allows us to prove ownership.The Software Watermarking problem can be described as follows. Embed a structure W into a program P such that: W can be reliably located and extracted from P even after P has been subjected to code transformations such as translation, optimization and obfuscation; W is stealthy; W has a high data rate; embedding W into P does not adversely affect the performance of P; and W has a mathematical property that allows us to argue that its presence in P is the result of deliberate actions.In the first part of the paper we construct an informal taxonomy of software watermarking techniques. In the second part we formalize these results. Finally, we propose a new software watermarking technique in which a dynamic graphic watermark is stored in the execution state of a program.
Christian S. Collberg, Clark D. Thomborson
POPL1
1998 Manufacturing Cheap, Resilient, and Stealthy Opaque Constructs
abstract
It has become common to distribute software in forms that are isomorphic to the original source code. An important example is Java bytecode. Since such codes are easy to decompile, they increase the risk of malicious reverse engineering attacks.In this paper we describe the design of a Java code obfuscator, a tool which - through the application of code transformations - converts a Java program into an equivalent one that is more difficult to reverse engineer.We describe a number of transformations which obfuscate control-flow. Transformations are evaluated with respect to potency (To what degree is a human reader confused?), resilience (How well are automatic deobfuscation attacks resisted?), cost (How much time/space overhead is added?), and stealth (How well does obfuscated code blend in with the original code?).The resilience of many control-altering transformations rely on the resilience of opaque predicates. These are boolean valued expressions whose values are known to the obfuscator but difficult to determine for an automatic deobfuscator. We show how to construct resilient, cheap, and stealthy opaque predicates based on the intractability of certain static analysis problems such as alias analysis.
Christian S. Collberg, Clark D. Thomborson, Douglas Low
POPL1
1997 Reverse Interpretation + Mutation Analysis = Automatic Retargeting
abstract
There are three popular methods for constructing highly retargetable compilers: (1) the compiler emits abstract machine code which is interpreted at run-time, (2) the compiler emits C code which is subsequently compiled to machine code by the native C compiler, or (3) the compiler's code-generator is generated by a back-end generator from a formal machine description produced by the compiler writer.These methods incur high costs at run-time, compile-time, or compiler-construction time, respectively.In this paper we will describe a novel method which promises to significantly reduce the effort required to retarget a compiler to a new architecture, while at the same time producing fast and effective compilers. The basic idea is to use the native C compiler at compiler construction time to discover architectural features of the new architecture. From this information a formal machine description is produced. Given this machine description, a native code-generator can be generated by a back-end generator such as BEG or burg.A prototype Automatic Architecture Discovery Unit has been implemented. The current version is general enough to produce machine descriptions for the integer instruction sets of common RISC and CISC architectures such as the Sun SPARC, Digital Alpha, MIPS, DEC VAX, and Intel x86. The tool is completely automatic and requires minimal input from the user: principally, the user needs to provide the internet address of the target machine and the command-lines by which the C compiler, assembler, and linker are invoked.
Christian S. Collberg
PLDI1