Open Access
Intellectual Property Protection using Obfuscation
Stephen Drape
- 01 Jan 2010
TL;DR: The definition of Code Obfuscation and its applications are described in more detail in Collberg, Barak, and Barak (2015).
read more
Abstract: In this technical report, we discuss the use of code obfuscation as means of protecting the intellectual property of software. An obfuscation is a behaviour preserving program transformation which aims to make a program harder to understand (which can mean it becomes unintelligible to automated program comprehension tools or that the result of program analyses become less useful to a human adversary). This report consists of three main parts. The first part of the report discusses some of the possible definitions of obfuscation and gives an extensive survey of some of the current obfuscation techniques. The second part considers a report written by University of Applied Sciences of Upper Austria, Hagenberg which discuss a variety of different protection techniques (including obfuscation). The last part reviews the techniques that we have seen so far. We provide an analysis of some of the reasons why current obfuscators are generally weak and why some of the better obfuscation techniques have not been implemented. Finally, we give recommendations for how better obfuscators can be created using obfuscation techniques which have not yet been implemented.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Generalized dynamic opaque predicates: A new control flow obfuscation method
Dongpeng Xu,Jiang Ming,Dinghao Wu +2 more
- 03 Sep 2016
TL;DR: This paper systematically develops a new control flow obfuscation scheme called generalized dynamic opaque predicates, which extends the application scope by automatically transforming more common program structures into dynamic opaquePredicates, whose values may vary in different runs.
45
Bit-Level Taint Analysis
Babak Yadegari,Saumya K. Debray +1 more
- 28 Sep 2014
TL;DR: Experiments indicate that the proposed enhanced taint analysis algorithm leads to significant improvements in the quality of deobfuscation, and a generalization of current bit-level taintAnalysis techniques to address these problems and improve their precision is proposed.
43
Layered obfuscation: a taxonomy of software obfuscation techniques for layered security
TL;DR: A systematic review of existing obfuscation techniques based on the idea of layered obfuscation and a novel taxonomy of obfuscation strategies under different branches that are orthogonal to each other are developed.
Effectiveness of synthesis in concolic deobfuscation
TL;DR: It is shown that synthesis- based deobfuscation is more effective than current SMT-based deob obfuscation algorithms, thus proposing a synthesis-based attacker model to complement existing attacker models and how targeted algebraic simplification can greatly reduce the analysis time.
28
•Posted Content
On Secure and Usable Program Obfuscation: A Survey.
TL;DR: This paper aims to explore secure and usable obfuscation approaches from the literature and the main finding is that currently there are no such approaches made secure andusable.
References
•Book
Compilers: Principles, Techniques, and Tools
Alfred V. Aho,Ravi Sethi,Jeffrey D. Ullman +2 more
- 01 Jan 1986
TL;DR: This book discusses the design of a Code Generator, the role of the Lexical Analyzer, and other topics related to code generation and optimization.
9.7K
A Complexity Measure
TL;DR: Several properties of the graph-theoretic complexity are proved which show, for example, that complexity is independent of physical size and complexity depends only on the decision structure of a program.
6K
•Book
A complexity measure
Thomas J. McCabe
- 04 Oct 1993
TL;DR: In this paper, a graph-theoretic complexity measure for managing and controlling program complexity is presented. But the complexity is independent of physical size, and complexity depends only on the decision structure of a program.
5.1K
Program Slicing
TL;DR: Program slicing as mentioned in this paper is a method for automatically decomposing programs by analyzing their data flow and control flow. But it is not a technique for finding statement-minimal slices, as it is in general unsolvable, but using data flow analysis is sufficient to find approximate slices.
3.3K
A Survey of Program Slicing Techniques.
Frank Tip
- 31 Jul 1994
TL;DR: An overview of the applications of program slicing, which include debugging, program integration, dataflow testing, and software maintenance is presented, including the various general approaches used to compute slices.