Skip to main content

Semantic-Based Code Obfuscation by Abstract Interpretation

  • Conference paper
Book cover Automata, Languages and Programming (ICALP 2005)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3580))

Included in the following conference series:

Abstract

In this paper we introduce a semantic-based approach for code obfuscation. The aim of code obfuscation is to prevent malicious users to disclose properties of the original source program. This goal can be precisely modeled by abstract interpretation, where the hiding of properties corresponds to abstract the semantics. We derive a general theory based on abstract interpretation, where the potency of code obfuscation can be measured by comparing hidden properties in the lattice of abstract interpretations. Semantic-based code obfuscation is applied to show that well known program transformation methods, such as constant propagation, can be seen as code obfuscation.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight 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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Barak, B., Goldreich, O., Impagliazzo, R., Rudich, S.: On the (Im)possibility of Obfuscating Programs. In: Kilian, J. (ed.) CRYPTO 2001. LNCS, vol. 2139, pp. 1–18. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  2. Collberg, C., Thomborson, C.: Watermarking, Tamper-Proofing, and Obfuscation-Tools for Software Protection. IEEE Trans. Software Eng., 735–746 (2002)

    Google Scholar 

  3. Chandrasekharan, S., Debray, S.: Deobfuscation: Improving Reverse Engineering of Obfuscated Code. Draft (2005)

    Google Scholar 

  4. Collberg, C., Thomborson, C.: Breaking Abstractions and Unstructural Data Structures. In: Proc. of the 1994 IEEE Internat. Conf. on Computer Languages (ICCL 1998), pp. 28–37 (1998)

    Google Scholar 

  5. Collberg, C., Thomborson, C., Low, D.: A Taxonomy of Obfuscating Transformations. Technical Report 148, Dept. of Computer Science, The Univ. of Auckland (1997)

    Google Scholar 

  6. Collberg, C., Thomborson, C., Low, D.: Manufacturing Cheap, Resilient, and Stealthy Opaque Constructs. In: Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of programming languages (POPL 1998), pp. 184–196. ACM, New York (1998)

    Chapter  Google Scholar 

  7. Cortesi, A., Filé, G., Giacobazzi, R., Palamidessi, C., Ranzato, F.: Complementation in abstract interpretation. ACM Trans. Program. Lang. Syst. 19(1), 7–47 (1997)

    Article  Google Scholar 

  8. Cousot, P.: Méthodes itératives de construction et d’approximation de points fixes d’opérateurs monotones sur un treillis, analyse sémantique des programmes. PhD Thesis, Université Scientifique et Médicale de Grenoble, Grenoble, France (1978)

    Google Scholar 

  9. Cousot, P.: Constructive Design of a Hierarchy of Semantics of a Transition System by Abstract Interpretation. Theoretical Computer Science 277(1-2), 47–103 (2002)

    Article  MATH  MathSciNet  Google Scholar 

  10. Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Conference Record of the 4th ACM Symp. on Principles of Programming Languages (POPL 1977), pp. 238–252. ACM Press, New York (1977)

    Chapter  Google Scholar 

  11. Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. In: Conference Record of the 6th ACM Symp. on Principles of Programming Languages (POPL 1979), pp. 269–282. ACM Press, New York (1979)

    Chapter  Google Scholar 

  12. Cousot, P., Cousot, R.: Systematic Design of Program Transformation Frameworks by Abstract Interpretation. In: Conference Record of the Twentyninth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 178–190. ACM Press, New York (2002)

    Google Scholar 

  13. Cousot, P., Cousot, R.: An Abstract Interpretation-Based Framework for Software Watermarking. In: Conference Record of the Thirtyfirst Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 173–185. ACM Press, New York (2004)

    Google Scholar 

  14. D’Anna, L., Matt, B., Reisse, A., Van Vleck, T., Schwab, S., LeBlanc, P.: Self-Protecting Mobile Agents Obfuscation Report. Technical report, Network Associates Laboratory (2003)

    Google Scholar 

  15. Filé, G., Ranzato, F.: Complementation of abstract domains made easy. In: Proceedings of the 1996 Joint International Conference and Symposium on Logic Programming (JICSLP 1996), pp. 348–362. The MIT Press, Cambridge (1996)

    Google Scholar 

  16. Giacobazzi, R., Ranzato, F., Scozzari, F.: Making abstract interpretations complete. J. of the ACM 47(2), 361–416 (2000)

    Article  MATH  MathSciNet  Google Scholar 

  17. Morgado, J.: Some results on the closure operators of partially ordered sets. Portug. Math. 19(2), 101–139 (1960)

    MATH  MathSciNet  Google Scholar 

  18. Paige, R.: Future directions in program transformations. In: ACM SIGPLAN Not., vol. 32, pp. 94–97 (1997)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Dalla Preda, M., Giacobazzi, R. (2005). Semantic-Based Code Obfuscation by Abstract Interpretation. In: Caires, L., Italiano, G.F., Monteiro, L., Palamidessi, C., Yung, M. (eds) Automata, Languages and Programming. ICALP 2005. Lecture Notes in Computer Science, vol 3580. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11523468_107

Download citation

  • DOI: https://doi.org/10.1007/11523468_107

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-27580-0

  • Online ISBN: 978-3-540-31691-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics