A Thorough Investigation of Code Obfuscation Techniques for Software Protection

Authors

  • Kumar K Department of Computer Science, Guru Nanak Dev University, INDIA
  • Kaur P Department of Computer Science, Guru Nanak Dev University, INDIA

Keywords:

Code Obfuscation, Software Protection, Reverse Engineering

Abstract

The Process of reverse engineering allows attackers to understand the behavior of software and extract the proprietary algorithms and key data structures (e.g. cryptographic keys) from it. Code obfuscation is the technique is employed to protect the software from the risk of reverse engineering i.e. to protect software against analysis and unwanted modification. Program obfuscation makes code harder to analyze. In this paper we survey the literature on code obfuscation. we have analyze the different obfuscation techniques in relation to protection of intellectual property. At the last, we are purposing suggestion to provide protection from both the static and dynamic attacks.

References

Christian S. Collberg and Clark Thombor-son. Watermarking, tamper-proofing, and obfuscation - tools for software protection.In IEEE Transactions on Software Engineering, volume 28, pages 735–746, August 2002.

Shakya Sundar Das, Code Obfuscation using Code Splitting with Self-modifying Code, Disseration National Institute of Technology Rourkela -769 008, Odisha, India May 2014.

C. Collberg, C. Thomborson, and D. Low, “A taxonomy of obfuscating transformations," tech. rep., Department of Computer Science, The University of Auckland, New Zealand, 1997.

C. Wang, A security architecture for survivability mechanisms. PhD thesis, University of Virginia, 2001.

V. Balachandran and S. Emmanuel, “Potent and stealthy control flow obfuscation by stack based self-modifying code," Information Forensics and Security, IEEE Transactions on, vol. 8, no. 4, pp. 669-681, 2013.

M. H. Halstead, Elements of Software Science (Operating and programming systems series). Elsevier Science Inc., 1977.

T. J. McCabe, “A complexity measure," Software Engineering, IEEE Transactions on, no. 4, pp. 308-320, 1976.

W. A. Harrison and K. I. Magel, “A complexity measure based on nesting level," ACM Sigplan Notices, vol. 16, no. 3, pp. 63-74, 1981.

G. Wroblewski, General Method of Program Code Obfuscation (draft). PhD thesis, Citeseer, 2002.

C. Wang, A security architecture for survivability mechanisms. PhD thesis, University of Virginia, 2001

M. Madou, B. Anckaert, P. Moseley, S. Debray, B. De Sutter, and K. De Bosschere, “Software protection through dynamic code mutation," in Information Security Applications, pp. 194-206, Springer, 2006.

I. V. Popov, S. K. Debray, and G. R. Andrews, “Binary obfuscation using signals," in USENIX Security Symposium, pp. 275-290, 2007

Z. Wu, S. Gianvecchio, M. Xie, and H. Wang, “Mimimorphism: a new approach to binary code obfuscation," in Proceedings of the 17th ACM conference on Computer and communications security, pp. 536-546, ACM, 2010.

L. Shan and S. Emmanuel, “Mobile agent protection with self-modifying code," Journal of Signal Processing Systems, vol. 65, no. 1, pp. 105-116,2011

Z. Wang, C. Jia, M. Liu, and X. Yu, “Branch obfuscation using code mobility and signal," in Computer Software and Applications Conference Workshops (COMPSACW), 2012 IEEE 36th Annual, pp. 553-558, IEEE, 2012.

V. Balachandran and S. Emmanuel, “Potent and stealthy control ow obfuscation by stack based self-modifying code," Information Forensics and Security, IEEE Transactions on, vol. 8, no. 4, pp. 669-681, 2013.

“Idapro debugger : Data rescue [Online]." http://www.datarescue.com/. Last Accessed: 07-1-2015

“Immunity debugger [Online]."

https://www.immunityinc.com/productsimmdbg.shtml. Last Accessed: 07-1-2015.

“Olly debugger [Online]." http://www.ollydbg.de”. Last Accessed: 12-09-2013

Matias Madou, Bertrand Anckaert, Bjorn De Sutter, and De Bosschere Koen."Hybrid static-dynamic attacks against software protection mechanisms", In Proceedings of the 5th ACM Workshop on Digital Rights Management. ACM, 2005

Sebastian Schrittwieser and Stefan Katzenbeisser, "Code Obfuscation against Static and Dynamic Reverse Engineering", Vienna University of Technology, Austria, Darmstadt University of Technology, Germany.

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.

F.Kazumasa , T.Haruaki ” An Obfuscation Method to Build a Fake Call Flow Graph by Hooking Method Calls” Las Vegas, USA IEEE, SNPD 2014, June 30-July 2, 2014.

Downloads

Published

2015-05-30

How to Cite

[1]
K. Kumar and P. Kaur, “A Thorough Investigation of Code Obfuscation Techniques for Software Protection”, Int. J. Comp. Sci. Eng., vol. 3, no. 5, pp. 158–164, May 2015.

Issue

Section

Review Article