Advertisement

Semantic-Based Code Obfuscation by Abstract Interpretation

  • Mila Dalla Preda
  • Roberto Giacobazzi
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3580)

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.

Keywords

Code Obfuscation Abstract Interpretation Program Transformation Semantics 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)CrossRefGoogle Scholar
  2. 2.
    Collberg, C., Thomborson, C.: Watermarking, Tamper-Proofing, and Obfuscation-Tools for Software Protection. IEEE Trans. Software Eng., 735–746 (2002)Google Scholar
  3. 3.
    Chandrasekharan, S., Debray, S.: Deobfuscation: Improving Reverse Engineering of Obfuscated Code. Draft (2005)Google Scholar
  4. 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. 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. 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)CrossRefGoogle Scholar
  7. 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)CrossRefGoogle Scholar
  8. 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. 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)zbMATHCrossRefMathSciNetGoogle Scholar
  10. 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)CrossRefGoogle Scholar
  11. 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)CrossRefGoogle Scholar
  12. 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. 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. 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. 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. 16.
    Giacobazzi, R., Ranzato, F., Scozzari, F.: Making abstract interpretations complete. J. of the ACM 47(2), 361–416 (2000)zbMATHCrossRefMathSciNetGoogle Scholar
  17. 17.
    Morgado, J.: Some results on the closure operators of partially ordered sets. Portug. Math. 19(2), 101–139 (1960)zbMATHMathSciNetGoogle Scholar
  18. 18.
    Paige, R.: Future directions in program transformations. In: ACM SIGPLAN Not., vol. 32, pp. 94–97 (1997)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Mila Dalla Preda
    • 1
  • Roberto Giacobazzi
    • 1
  1. 1.Dipartimento di InformaticaUniversità di VeronaVeronaItaly

Personalised recommendations