Abstract
Software piracy and tampering is a well known threat the world is faced with. There have been a lot of attempts to protect software from reverse engineering and tampering. It appears as if there is an ongoing war between software developers and crackers, both parties want to get an upper hand over each other as the time passes. Some of the ample techniques of software protection are reviewed, including multi-block hashing scheme, hardware based solutions, checksums, obfuscation, guards, software aging, cryptographic techniques and watermarking. All of these techniques play their parts imparted on them to protect the software from malicious attacks.
Keywords
- reverse engineering
- software protection
- piracy
- obfuscation
- software aging
- watermarking
- checksums
This is a preview of subscription content, access via your institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
P. WANG, Tamper resistance for software protection. M.S. thesis, School of Engineering Information and Communications University, Daejeon, 2005.
J. PALSBERG, S. KRISHNASWAMY, M. KWON, D. MA, Q. SHAO and Y. ZHANG, Experience with software watermarking. Proceedings of the Sixteenth Annual Computer Security Applications Conference, pp. 1-9, 2000.
C. Collberg and C. Thomborson, Watermarking, tamper-roofing, and obfuscation – tools for software protection. Proceedings of the IEEE Transactions on Software Engineering, Vol. 28, No. 8, pp. 735-746, 2002.
M.J. Atallah, E.D. Bryant, and M.R. Stytz, A survey of anti-tamper technologies. The Journal of Defense Software Engineering, pp. 12-16, 2004.
P.C.V. Oorschot, Revisiting software protection. Proceedings of the Sixth International Conference on Information Security, Bristol, UK, pp. 1-13, 2003.
L. Ertaul, and S. Venkatesh, JHide – a tool kit for code obfuscation. Proceedings of the Eighth IASTED International Conference Software Engineering and Applications, Cambridge, USA, pp. 133-138, 2004.
B. Blietz, Software tamper resistance through dynamic monitoring.M.S. thesis, Iowa State University, Ames, Iowa, 2004.
G. Naumovich and N. Memon, Preventing piracy, reverse engineering, and tampering. IEEE Computer Society, Vol. 36, No. 7, pp. 64-71, 2003.
G. Nolan Decompiling Java, Apress, Berkeley, 280 pp., 2004.
M.R. Stytz and J.A. Whittaker, Software protection: security’s last stand. IEEE Security and Privacy, Vol. 1, No. 1, pp. 95-98, 2003.
D.E. Bakken, R. Parameswaran, D.M. Blough, A.A. Franz and T.J. Palmer, Data obfuscation: anonymity and desensitization of usable data sets. IEEE Security and Privacy, Vol. 2, No. 6, pp. 34-41, 2004.
L. D’Anna, B. Matt, A. Reisse, T.V. Vleck, S. Schwab and P. Leblanc, Self-protecting mobile agents obfuscation report. Technical Report No. 03-015, Network Associates Laboratories, 2003.
C. Collberg, G. Myles and A. Huntwork, Sandmark - a tool for software protection research. IEEE Security and Privacy, Vol.1, No. 4, pp. 40-49, 2003.
V. Tam and R.K. Gupta, Using class decompilers to facilitate the security of java applications. Proceedings of the 1 st International Conference on Web Information Systems Engineering, Vol. 1, 2000.
B. Barak, O. Goldreich, R. Impagliazzo, S. Rudich, A. Sahai, S. Vadhan and K. Yang, On the (im)possibility of obfuscating programs. Technical Report No. 57, Electronic Colloquium on Computational Complexity, 2001.
T. Ogiso, Y. Sakabe, M. Soshi and A. Miyaji, Software obfuscation on theoretical basis and its implementation. Proceedings of the IEICE Transaction Fundamentals, Vol. E86-A, No. 1, 2003.
J. Chan and W. Yang, Advanced obfuscation techniques for Java bytecode. Journal of Systems and Software, Vol. 71, pp. 1-10, 2004.
C. Collberg, C. Thomborson, and D. Low, A taxonomy of obfuscating transformations. Technical Report No. 148, Department of Computer Science, University of Auckland, New Zealand, 1997.
C. Collberg, C. Thomborson and D. Low, Breaking abstractions and unstructuring data structures. Proceedings of the 1998 International Conference on Computer Languages, pp. 28, 1998.
C. Linn and S. Debray, Obfuscation of executable code to improve resistance to static disassembly. Proceedings of the 10 th ACM Conference on Computer and Communications Security, pp. 290-299, 2003.
M. Sosonkin, G. Naumovich and N. Memon, Obfuscation of design intent in object oriented applications. Proceedings of the 2003 ACM Workshop on Digital Rights Management, pp. 142-153, 2003.
E. Emden and L. Moonen, Java quality assurance by detecting code smells. Proceedings of the 9 th Working Conference on Reverse Engineering, Amsterdam, Netherlands, pp. 97-106, 2002.
H. Chang and M. Attalah, Protecting software code by guards. Proceedings of the ACM Workshop on Security and Privacy in Digital Rights Management, Philadelphia, pp. 160-175, 2001.
C.L. Quigley, A programming logic for Java bytecode programs. Ph.D.thesis, University of Glasgow, Glasgow, Scotland, 2004.
F. Qian, Runtime techniques and interprocedural analysis in Java virtual machines. Ph.D. thesis, School of Computer Science, McGill University, Montreal, 2005.
M. Jakobsson and M.K. Reiter, Discouraging software piracy using software aging. Proceedings of the ACM digital Rights Management, pp. 1-12, 2002.
L. Ertaul and S. Venkatesh, Novel obfuscation algorithms for software security. Proceedings of the 2005 International Conference on Software Engineering Research and Practice, Las Vegas, 2005.
P.T. Devanbu, P.W. Fong and S.G. Stubblebine, Techniques for trusted software engineering. Proceedings of the 20 th International Conference on Software Engineering, pp. 126-135, 1998.
D.S. Wallach, A new approach to mobile code security. Ph.D. dissertation, Princeton University, Princeton, New Jersey, 1999.
G. Arboit, A method for watermarking Java programs via opaque predicates. Proceedings of the 5 th International Conference on Electronic Commerce Research, Los Alamitos, pp. 124-131, 2002.
A. Monden, H. Lida, K. Matsumoto, K. Inoue and K. Torii, A practical method for watermarking Java programs. Proceedings of the 24 th Computer Software Applications Conference, Taipei, Taiwan, pp. 191-197, 2000.
L. Vinciguerra, L. Wills, N. Kejriwal, P. Martino and R. Vinciguerra, An experimentation framework for evaluating disassembly and decompilation tools for C++ and Java. Proceedings of the 10 th Working Conference on Reverse Engineering, 2003.
P.T. Devanbu and S.G Stubblebine, Software engineering for security: a roadmap.ICSE - Future of SE Track, pp. 227–239, 2000.
G. Hachez, L.D. Hollander, M. Jalali, J.J. Quisquater and C. Vasserot, Towards a practical secure framework for mobile code commerce. Proceedings of the Third International Information Security Workshop, Wollongong,Australia, Vol. 1975 of LNCS. pp.164–178, 2000.
C. Wang, J. Davidson, J. Hill and J. Knight, Protection of software-based survivability mechanisms.The International Conference on Dependable Systems and Networks,Goteborg, Sweden, IEEE Press, pp. 193–205, 2001.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2007 Springer
About this paper
Cite this paper
Memon, J.M., Khan, A., Baig, A., Shah, A. (2007). A Study of Software Protection Techniques. In: Sobh, T. (eds) Innovations and Advanced Techniques in Computer and Information Sciences and Engineering. Springer, Dordrecht. https://doi.org/10.1007/978-1-4020-6268-1_45
Download citation
DOI: https://doi.org/10.1007/978-1-4020-6268-1_45
Publisher Name: Springer, Dordrecht
Print ISBN: 978-1-4020-6267-4
Online ISBN: 978-1-4020-6268-1
eBook Packages: EngineeringEngineering (R0)
