Skip to main content

A Study of Software Protection Techniques

  • Conference paper

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

Chapter
USD   29.95
Price excludes VAT (Canada)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   129.00
Price excludes VAT (Canada)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   169.99
Price excludes VAT (Canada)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD   169.99
Price excludes VAT (Canada)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. P. WANG, Tamper resistance for software protection. M.S. thesis, School of Engineering Information and Communications University, Daejeon, 2005.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. 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.

    CrossRef  Google Scholar 

  4. 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.

    Google Scholar 

  5. P.C.V. Oorschot, Revisiting software protection. Proceedings of the Sixth International Conference on Information Security, Bristol, UK, pp. 1-13, 2003.

    Google Scholar 

  6. 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.

    Google Scholar 

  7. B. Blietz, Software tamper resistance through dynamic monitoring.M.S. thesis, Iowa State University, Ames, Iowa, 2004.

    Google Scholar 

  8. G. Naumovich and N. Memon, Preventing piracy, reverse engineering, and tampering. IEEE Computer Society, Vol. 36, No. 7, pp. 64-71, 2003.

    Google Scholar 

  9. G. Nolan Decompiling Java, Apress, Berkeley, 280 pp., 2004.

    Google Scholar 

  10. 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.

    CrossRef  Google Scholar 

  11. 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.

    CrossRef  Google Scholar 

  12. 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.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. 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.

    Google Scholar 

  15. 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.

    Google Scholar 

  16. 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.

    Google Scholar 

  17. J. Chan and W. Yang, Advanced obfuscation techniques for Java bytecode. Journal of Systems and Software, Vol. 71, pp. 1-10, 2004.

    CrossRef  Google Scholar 

  18. 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.

    Google Scholar 

  19. 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.

    Google Scholar 

  20. 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.

    Google Scholar 

  21. 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.

    Google Scholar 

  22. 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.

    Google Scholar 

  23. 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.

    Google Scholar 

  24. C.L. Quigley, A programming logic for Java bytecode programs. Ph.D.thesis, University of Glasgow, Glasgow, Scotland, 2004.

    Google Scholar 

  25. F. Qian, Runtime techniques and interprocedural analysis in Java virtual machines. Ph.D. thesis, School of Computer Science, McGill University, Montreal, 2005.

    Google Scholar 

  26. M. Jakobsson and M.K. Reiter, Discouraging software piracy using software aging. Proceedings of the ACM digital Rights Management, pp. 1-12, 2002.

    Google Scholar 

  27. 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.

    Google Scholar 

  28. 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.

    Google Scholar 

  29. D.S. Wallach, A new approach to mobile code security. Ph.D. dissertation, Princeton University, Princeton, New Jersey, 1999.

    Google Scholar 

  30. 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.

    Google Scholar 

  31. 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.

    Google Scholar 

  32. 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.

    Google Scholar 

  33. P.T. Devanbu and S.G Stubblebine, Software engineering for security: a roadmap.ICSE - Future of SE Track, pp. 227–239, 2000.

    Google Scholar 

  34. 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.

    Google Scholar 

  35. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics