skip to main content
10.1145/2597008.2597807acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

A code obfuscation framework using code clones

Published: 02 June 2014 Publication History

Abstract

IT industry loses tens of billions of dollars annually from security attacks such as malicious reverse engineering. To protect sensitive parts of software from such attacks, we designed a code obfuscation scheme based on nontrivial code clones. While implementing this scheme, we realized that currently there is no framework to assist implementation of such advanced obfuscation techniques. Therefore, we have developed a framework to support code obfuscation using code clones. We could successfully implement our obfuscation technique using this framework in Java. In this paper, we present our framework and illustrate it with an example.

References

[1]
C. Collberg, C. Thomborson, and D. Low, "A taxonomy of obfuscating transformations", Technical report 148, Department of computer science, the University of Auckland, New Zealand, 1997.
[2]
M. Ceccato, M. DiPenta, J. Nagra, P. Falcarin, F.Ricca, M. Torchiano, and P. Tonella. "The effectiveness of source code obfuscation: an experimental assessment", In IEEE International Conference on Program Comprehension (ICPC 2009). IEEE CS Press, 2009
[3]
F. Cohen. Computer viruses: theory and experiments. Comput. Secur. 6, 1 (February 1987), 22-35. http://dx.doi.org/10.1016/0167-4048(87)90122-2
[4]
C. Collberg, C. Thomborson, and D. Low. "Manufacturing cheap, resilient, and stealthy opaque constructs", In ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL98, San Diego, January 1998.
[5]
Low, D. (1998). "Java Control Flow Obfuscation", Master’s thesis. University of Auckland.
[6]
Wang, C., Hill, J., Knight, J.C., and Davidson, J.W.: "Protection of software-based survivability mechanisms", In Proceedings of the 2001 conference on Dependable Systems and Networks. IEEE Computer Society. Pages 193-202. 2001.
[7]
Chow, S., Gu, Y., Johnson, H., and Zakharov, V.A.: "An Approach to the Obfuscation of Control-Flow of Sequential Computer Programs", In the proceedings of 4th International Conference on Information Security, LNCS Volume 2200. Pages 144-155. Springer-Verlag. Malaga, Spain. 2001.
[8]
Palsberg, J., Krishnaswamy, S., Kwon, M., Ma, D., Shao, Q., and Zhang, Y.: "Experience with software watermarking", In Proceedings of 16th IEEE Annual Computer Security Applications Conference. IEEE Press. p308. New Orleans, LA, USA. 2000.
[9]
T. J. McCabe. "A complexity measure", IEEE Transactions on Software Engineering, 2(4):308-320, December 1976.
[10]
B. Anckaert, M. Madou, B. D. Sutter, B. D. Bus, K. D. Bosschere, and B. Preneel. "Program obfuscation: a quantitative approach", In QoP ’07: Proc. of the 2007 ACM Workshop on Quality of protection, pages 15-20, New York, NY, USA,2007. ACM.
[11]
M. Madou, B. Anckaert, B. D. Sutter, and D. B. Koen. "Hybrid static-dynamic attacks against software protection mechanisms", In Proceedings of the 5th ACM Workshop on Digital Rights Management. ACM, 2005.
[12]
I. Baxter, A. Yahin, L. Moura, M. S. Anna, and L. Bier. Clone Detection Using Abstract Syntax Trees. In Proceedings of ICSM. IEEE, 1998.
[13]
S. Schrittwieser and S. Katzenbeisser, "Code Obfuscation against Static and Dynamic Reverse Engineering", Vienna University of Technology, Austria, Darmstadt University of Technology, Germany
[14]
Business Software Alliance (May 2011), Eighth Annual BSA and IDC Global Software Piracy Study.
[15]
A. Balakrishnan and C. Schulze,"Code Obfuscation: Literature Survey", Technical report, Computer Science Department, University of Wisconsin, Madison, USA, 2005.
[16]
DashO - PreEmptive Solutions. http://www.preemptive.com/products/dasho
[17]
ProGuard: Java obfuscator. http://proguard.sourceforge.net
[18]
R. Pucella and F. B. Schneider. 2010. Independence from obfuscation: A semantic framework for diversity. J. Comput. Secur. 18, 5 (September 2010), 701-749.
[19]
M. D. Preda and R. Giacobazzi. Semantics-based code obfuscation by abstract interpretation. J. Comput. Secur. 17, 6 (December 2009), 855-908.
[20]
Dotfuscator - PreEmptive Solutions. http://www. preemptive.com/products/dotfuscator
[21]
yGuard - Java Bytecode Obfuscator and Shrinker. http://www.yworks.com/en/products_ yguard_about.htm
[22]
Cloakware Security - Irdeto. http://irdeto.com/ documents/so_core_technology_en.pdf
[23]
SandMark: A Tool for the Study of Software Protection Algorithms http://sandmark.cs.arizona.edu
[24]
Zelix KlassMaster http://www.zelix.com/klassmaster
[25]
A. Kulkarni and R. Metta. A New Code Obfuscation Scheme for Software Protection. Proceedings of the 3rd International Workshop on Cyberpatterns. Oxford, UK, 7-11 April, 2014. (to appear)

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICPC 2014: Proceedings of the 22nd International Conference on Program Comprehension
June 2014
325 pages
ISBN:9781450328791
DOI:10.1145/2597008
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

In-Cooperation

  • TCSE: IEEE Computer Society's Tech. Council on Software Engin.

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 02 June 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Code Obfuscation
  2. Framework
  3. Reverse Engineering
  4. Software Protection

Qualifiers

  • Article

Conference

ICSE '14
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)0
Reflects downloads up to 26 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media