Twisting Additivity in Program Obfuscation

  • Mila Dalla Preda
  • Wu Feng
  • Roberto Giacobazzi
  • Richard Greechie
  • Arun Lakhotia
Part of the Communications in Computer and Information Science book series (CCIS, volume 285)

Abstract

Additivity plays a key role in program analysis. It is the basis for designing Galois connection based abstract interpretations, it makes a Data-Flow Analysis (DFA) problem easy being convertible into a Kildall’s general form, and provides a lattice-theoretic model for disjunctive analysis. In this paper we consider reversible transformers respectively making any monotone function additive and maximally non-additive. We show that, under non restrictive hypothesis, these transformers exist and that they provide a theoretical foundation for the obfuscation of DFA.

Keywords

Program analysis distributive DFA framework code obfuscation 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Andréka, H., Greechie, R.J., Strecker, G.E.: On Residuated Approximations. In: Kreowski, H.-J., Herrlich, H., Preuß, G., Ehrig, H. (eds.) Categorical Methods in Computer Science. LNCS, vol. 393, pp. 333–339. Springer, Heidelberg (1989)Google Scholar
  2. 2.
    Balasundaram, V., Kennedy, K.: A technique for summarizing data access and its use in parallelism enhancing transformations. In: PLDI, New York, NY, pp. 41–53 (1989)Google Scholar
  3. 3.
    Birkhoff, G.: Subdirect unions in universal algebra. Bull. Amer. Math. Soc. 50, 764–768 (1944)MathSciNetMATHCrossRefGoogle Scholar
  4. 4.
    Blyth, T., Janowitz, M.: Residuation theory. Pergamon Press (1972)Google Scholar
  5. 5.
    Collberg, C., Thomborson, C., Low, D.: Manufacturing cheap, resilient, and stealthy opaque constructs. In: 25th POPL, pp. 184–196. ACM Press (1998)Google Scholar
  6. 6.
    Cousot, P., Cousot, R.: Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction of Approximation of Fixed Points. In: 4th POPL, pp. 238–252 (1977)Google Scholar
  7. 7.
    Cousot, P., Cousot, R.: Abstract Interpretation framework. Journal of Logic and Computation 2(4), 511–547 (1992)MathSciNetMATHCrossRefGoogle Scholar
  8. 8.
    Cousot, P., Cousot, R.: Static determination of dynamic properties of programs. In: Proc. 2nd Int. Symp. on Programming, Dunod, pp. 106–130 (1976)Google Scholar
  9. 9.
    Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. In: 6th POPL, San Antonio, TX, pp. 269–282. ACM Press (1979)Google Scholar
  10. 10.
    Cousot, P., Halbwachs, N.: Automatic discovery of linear restraints among variables of a program. In: 5th POPL, Tucson, AZ, pp. 84–97. ACM Press (1978)Google Scholar
  11. 11.
    Dalla Preda, M., Giacobazzi, R.: Semantics-based code obfuscation using abstract interpretation. Journal of Computer Security 17(6), 855–908 (2009)Google Scholar
  12. 12.
    Davey, B.A., Priestly, H.A.: Introduction to Lattices and Order. Cambridge University Press (2002)Google Scholar
  13. 13.
    Feng, W., Su, J., Greechie, R.: On calculating residuated approximations. Algebra Universalis (to appear)Google Scholar
  14. 14.
    Giacobazzi, R.: Hiding information in completeness holes - New perspectives in code obfuscation and watermarking. In: 6th IEEE International Conference SEFM, pp. 7–20 (2008)Google Scholar
  15. 15.
    Giacobazzi, R., Jones, N.D., Mastroeni, I.: Obfuscation by Partial Evaluation of Distorted Interpreters. In: Proc. ACM SIGPLAN Partial Evaluation and Program Manipulation (PEPM 2012), Philadelphia, USA (to appear, 2012)Google Scholar
  16. 16.
    Giacobazzi, R., Ranzato, F.: Uniform Closures: Order-Theoretically Reconstructing Logic Program Semantics and Abstract Domain Refinements. Information and Computation 145(2), 153–190 (1998)MathSciNetMATHCrossRefGoogle Scholar
  17. 17.
    Giacobazzi, R., Ranzato, F.: Optimal domains for disjunctive abstract interpretation. Science of Computer Programming 32(1-3), 177–210 (1998)MathSciNetMATHCrossRefGoogle Scholar
  18. 18.
    Gierz, G., Hofmann, K.H., Keimel, K., Lawson, J.D., Mislove, M., Scott, D.S.: A Compendium of Continuous Lattices. Springer, Berlin (1980)MATHCrossRefGoogle Scholar
  19. 19.
    Granger, P.: Static analysis of arithmetic congruence. Int. J. Comput. Math. 30, 165–190 (1989)MATHCrossRefGoogle Scholar
  20. 20.
    Granger, P.: Static Analysis of Linear Congruence Equalities Among Variables of a Program. In: Abramsky, S., Maibaum, T.S.E. (eds.) CAAP 1991 and TAPSOFT 1991. LNCS, vol. 493, pp. 169–192. Springer, Heidelberg (1991)Google Scholar
  21. 21.
    Greechie, R.J., Janowitz, M.F.: Personal communication (2005)Google Scholar
  22. 22.
    Kildall, G.A.: Global expression optimization during compilation. In: 1st POPL, Boston, MA, pp. 194–206. ACM Press (1973)Google Scholar
  23. 23.
    Majumdar, A., Thomborson, C.: Manufactoring opaque predicates in distributed systems for code obfuscation. In: 29th Australasian Computer Science Conference (ACSC 2006), vol. 48, pp. 187–196 (2006)Google Scholar
  24. 24.
    Masdupuy, F.: Semantic Analysis of Interval Congruences. In: Pottosin, I.V., Bjorner, D., Broy, M. (eds.) FMP&TA 1993. LNCS, vol. 735, pp. 142–155. Springer, Heidelberg (1993)CrossRefGoogle Scholar
  25. 25.
    Mauborgne, L.: Tree Schemata and Fair Termination. In: Palsberg, J. (ed.) SAS 2000. LNCS, vol. 1824, pp. 302–319. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  26. 26.
    Nielson, F., Nielson, H., Hankin, C.: Principles of Program Analysis. Springer (2004)Google Scholar
  27. 27.
    Plaisted, D.A.: Theorem proving with abstraction. Artificial Intelligence 16, 47–108 (1981)MathSciNetMATHCrossRefGoogle Scholar
  28. 28.
    Su, J., Feng, W., Greechie, R.J.: Disitributivity conditions and the order-skeleton of a lattice. Algebra Universalis 66(4), 337–354 (2011)MATHCrossRefGoogle Scholar
  29. 29.
    Szor, P.: The Art of Computer Virus Research and Defense. Addison-Wesley Professional (2005)Google Scholar
  30. 30.
    Wang, C., Hill, J., Knight, J., Davidson, J.: Software tamper resistance: obstructing static analysis of programs, Technical Report CS-2000-12, Department of Computer Science, University of Virginia (2000)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Mila Dalla Preda
    • 1
  • Wu Feng
    • 2
  • Roberto Giacobazzi
    • 3
  • Richard Greechie
    • 2
  • Arun Lakhotia
    • 4
  1. 1.University of BolognaBolognaItaly
  2. 2.Louisiana Tech UniversityRustonUSA
  3. 3.University of VeronaVeronaItaly
  4. 4.University of LouisianaLafayetteUSA

Personalised recommendations