|
ABSTRACT
The goal of obfuscation is to transform a program, without affecting its functionality, such that some secret information within the program can be hidden for as long as possible from an adversary armed with reverse engineering tools. Slicing is a form of reverse engineering which aims to abstract away a subset of program code based on a particular program point and is considered to be a potent program comprehension technique. Thus, slicing could be used as a way of attacking obfuscated programs. It is challenging to manufacture obfuscating transforms that are provably resilient to slicing attacks.We show in this paper how we can utilise the information gained from slicing a program to aid us in designing obfuscations that are more resistant to slicing. We extend a previously proposed technique and provide proofs of correctness for our transforms. Finally, we illustrate our approach with a number of obfuscating transforms and provide empirical results using software engineering metrics.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Business Software Alliance. Second annual BSA and IDC software piracy study, May 2005. Available from www.bsa.org/globalstudy/upload/2005-Global-Study-English.pdf.
|
| |
2
|
Paul Anderson and Tim Teitelbaum. Software inspection using CodeSurfer. In Proceedings of the Workshop on Inspection in Software Engineering (WISE 2001), Paris, France, July 2001. IEEE Computer Society.
|
| |
3
|
Boaz Barak , Oded Goldreich , Russell Impagliazzo , Steven Rudich , Amit Sahai , Salil P. Vadhan , Ke Yang, On the (Im)possibility of Obfuscating Programs, Proceedings of the 21st Annual International Cryptology Conference on Advances in Cryptology, p.1-18, August 19-23, 2001
|
| |
4
|
|
| |
5
|
|
| |
6
|
Phillipe Biondi and Fabrice Desclaux. Silver needle in the Skype. Presentation at BlackHat Europe, March 2006. Available from www.blackhat.com/html/bh-media-archives/bh-archives-2006.html.
|
| |
7
|
Christian Collberg, Clark D. Thomborson, and Douglas Low. A taxonomy of obfuscating transformations. Technical Report 148, Department of Computer Science, University of Auckland, July 1997.
|
 |
8
|
Christian Collberg , Clark Thomborson , Douglas Low, Manufacturing cheap, resilient, and stealthy opaque constructs, Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.184-196, January 19-21, 1998, San Diego, California, United States
[doi> 10.1145/268946.268962]
|
 |
9
|
|
| |
10
|
Willem-Paul de Roever and Kai Engelhardt. Data Refinement: Model-Oriented Proof Methods and their Comparison. Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, 1998.
|
| |
11
|
Stephen Drape. Obfuscation of Abstract Data-Types. DPhil thesis, Oxford University Computing Laboratory, 2004.
|
 |
12
|
Stephen Drape , Oege de Moor , Ganesh Sittampalam, Transforming the .NET intermediate language using path logic programming, Proceedings of the 4th ACM SIGPLAN international conference on Principles and practice of declarative programming, p.133-144, October 06-08, 2002, Pittsburgh, PA, USA
[doi> 10.1145/571157.571171]
|
| |
13
|
Stephen Drape and Anirban Majumdar. Design and Evaluation of Slicing Obfuscations. Technical Report 311, University of Auckland, New Zealand, June 2007.
|
| |
14
|
Stephen Drape, Anirban Majumdar, and Clark Thomborson. Slicing aided design of obfuscating transforms. In IEEE/ACIS ICIS 2007: In proceedings of the International Computing and Information Systems Conference (ICIS 2007), Melbourne, Australia, 2007. IEEE Computer Society.
|
| |
15
|
|
 |
16
|
|
| |
17
|
Ganeshan Jayaraman, Venkatesh Prasad Ranganath, and John Hatcliff. Kaveri: Delivering the Indus Java program slicer to Eclipse. In FASE, pages 269--272. Lecture Notes In Computer Science, Springer Verlag, 2005.
|
| |
18
|
Anirban Majumdar, Antoine Monsifrot, and Clark D. Thomborson. On evaluating obfuscatory strength of alias-based transforms using static analysis. In ADCOM 2006: Proceedings of the 14th International Conference on Advanced Computing and Communication (ADCOM 2006), Mangalore, India, 2006. IEEE Computer Society.
|
| |
19
|
Anirban Majumdar, Clark D. Thomborson, and Stephen Drape. A survey of control-flow obfuscations. In Information Systems Security, Second International Conference, ICISS 2006, Kolkata, India, pages 353--356, December 2006.
|
| |
20
|
|
| |
21
|
Linda M. Ott and Jeffrey J. Thuss. Slice based metrics for estimating cohesion. In Proceedings of the IEEE-CS International Software Metrics Symposium, pages 78--81, 1993.
|
| |
22
|
|
| |
23
|
Nuno Santos, Pedro Pereira, and Luís Moura e Silva. A Generic DRM Framework for J2ME Applications. In Olli Pitkänen, editor, First International Mobile IPR Workshop: Rights Management of Information (MobileIPR), pages 53--66. Helsinki Institute for Information Tecnhology, August 2003.
|
| |
24
|
|
| |
25
|
|
INDEX TERMS
Primary Classification:
D.
Software
D.2
SOFTWARE ENGINEERING
D.2.8
Metrics
Additional Classification:
D.
Software
D.2
SOFTWARE ENGINEERING
D.2.1
Requirements/Specifications
D.3
PROGRAMMING LANGUAGES
D.3.1
Formal Definitions and Theory
E.
Data
E.1
DATA STRUCTURES
F.
Theory of Computation
F.3
LOGICS AND MEANINGS OF PROGRAMS
F.3.1
Specifying and Verifying and Reasoning about Programs
General Terms:
Design,
Experimentation,
Human Factors,
Languages,
Legal Aspects,
Measurement,
Security,
Theory
Keywords:
digital rights management,
obfuscation,
program transformation,
software security,
static slicing
|