Abstract
Obfuscation is one of the most effective methods to protect software against malicious reverse engineering intentionally making the code more complex and confusing. In this paper, we implement and evaluate an obfuscation tool, or obfuscator for protecting the intellectual property of C/C++ source code. That is, this paper presents an implementation of a code obfuscator, a tool which transforms a C/C++ source program into an equivalent one that is much harder to understand. We have used the ANTRL parser generator for parsing C/C++ programs, and applied some obfuscation algorithms. Performance analysis is conducted by executing two obfuscated programs on the XScale architecture to establish the relationship between the complexity and the performance of each program. When the obfuscated source code has been compared with the original source code, it has enough effectiveness in terms of potency and resilience though it incurs some run-time overhead.
This work was supported by the Korea Research Foundation Grant funded by the Korean Government (MOEHRD, Basic Research Promotion Fund)(KRF-2008-314-D00340).
Chapter PDF
Similar content being viewed by others
References
Business Software Alliance, Fourth Annual BSA and IDC Global Software Piracy Study (2006)
Collberg, C.S., Thomborson, C.: Watermarking, Tamper-Proofing, and Obfuscation – Tools for Software Protection. IEEE Transactions on Software Engineering 28(8), 735–746 (2002)
Gomathisankaran, M., Tyagi, A.: Architecture Support for 3D Obfuscation. IEEE Transaction on Computer 55(5), 497–507 (2006)
Collberg, C., Myles, G., Huntwork, A.: Sandmark – Tool for Software Protection Research. IEEE Security & Privacy (Software Protection), 40–49 (July/August 2003)
Naumovicb, G., Memon, N.: Preventing Piracy, Reverse Engineering, and Tampering. IEEE Computer, 64–71 (2003)
Fu, B., Richard III, G.G., Chen, Y., Husseiny, A.: Some New Approaches For Preventing Software Tampering. In: Proc. of the 44th ACM Southeast Regional Conference (ACM SE 2006), pp. 655–660 (2006)
van Oorschot, P.C.: Revisiting Software Protection. In: Boyd, C., Mao, W. (eds.) ISC 2003. LNCS, vol. 2851, pp. 1–13. Springer, Heidelberg (2003)
Collberg, C., Thomborson, C., Low, D.: A Taxonomy of Obfuscating Transformations. Technical report 148, Dept. of Computer Science, University of Auckland, New Zealand (1997)
MacBride, J., Mascioli, C., Marks, S., Tang, G., Head, L.M.: A Comparative Study of Java Obfuscators. In: IASTED International Conference on Software Engineering and Applications, Phoenix, Arizona, November 14–16, 2005, pp. 82–86 (2005)
Ertaul, L., Venkatesh, S.: JHide – a tool kit for code obfuscation. In: Proc. of the 8th IASTED International Conference Software Engineering and Applications (2004)
Kruegel, C., Robertson, W., Valeur, F., Vigna, G.: Static Disassembly of Obfuscated Binaries. In: Proc. of the 13th USENIX Security Symposium, pp. 255–270 (2004)
ANTLR, http://www.antlr.org
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2008 IFIP International Federation for Information Processing
About this paper
Cite this paper
Cho, S., Chang, H., Cho, Y. (2008). Implementation of an Obfuscation Tool for C/C++ Source Code Protection on the XScale Architecture. In: Brinkschulte, U., Givargis, T., Russo, S. (eds) Software Technologies for Embedded and Ubiquitous Systems. SEUS 2008. Lecture Notes in Computer Science, vol 5287. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-87785-1_36
Download citation
DOI: https://doi.org/10.1007/978-3-540-87785-1_36
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-87784-4
Online ISBN: 978-3-540-87785-1
eBook Packages: Computer ScienceComputer Science (R0)