Using Exception Handling to Build Opaque Predicates in Intermediate Code Obfuscation Techniques

Authors

  • Daniel Dolz Grupo de Investigación en Robótica Inteligente, Departamento de Ciencias de la Computación, Universidad Nacional del Comahue, Neuquén, Argentina
  • Gerardo Parra Grupo de Investigación en Robótica Inteligente, Departamento de Ciencias de la Computación, Universidad Nacional del Comahue, Neuquén, Argentina

Keywords:

Obfuscation, Obfuscation Transformation, Opaque Predicates

Abstract

Microsoft's .NET Framework, and JAVA platforms, are based in a just-in-time compilation philosophy. Software developed using these technologies is executed in a hardware independent framework, which provides a full object-oriented environment, and in some cases allows the interaction of several components written in different programming languages. This flexibility is achieved by compiling into an intermediate code which is platform independent. Java is compiled into ByteCode, and Microsoft .NET programs are compiled into MSIL (Microsoft Intermediate Code). However, this flexibility comes with a price. With freeware tools available in Internet, it is quite easy to decompile intermediate codes and obtain a working, readable version of the source code. Obfuscation is the most accepted and commercially available technique that developers can use to protect their intellectual property In this work, we propose the use of try-catch mechanisms available in .NET as a way to improve the quality of one of the building blocks of obfuscation: opaque predicates.

Downloads

Download data is not yet available.

References

[1] Fortune 500. http://en.wikipedia.org/wiki/fortune500.
[2] Christian Collberg and Clark Thompson. Watermarking, tamper-proofing, and obfuscation - tools for software protection.
[3] Christian Collberg, Clark Thompson, and Douglas Low. Manufactoring cheap, resilient, and stealthy opaque construct.
[4] D. Dolz and G. Parra. Ofuscadores de código intermedio. Reporte preliminar. In VIII Workshop de Investigadores en Ciencias de la Computación, 2006.
[5] Susan Horwitz. Precise flow insensitive May-Alias analysis is NP-Hard. TOPLAS, 19(1):1–6, 1997.
[6] Jeff Hughes and Martin Stytz. Advancing software security - the software protection initiative, 2001.
[7] The Common Language Infrastructure (CLI) Partition II. Metadata Definition and Semantics.
[8] The Common Language Infrastructure (CLI) Partition III. Cil Instruction Set.
[9] Microsoft Software Developer Network. Microsoft Visual Studio 2005 Evaluation Guide.
[10] G. Ramalingam. The undecidability of aliasing. TOPLAS, 16(5):1467–1471, 1997.
[11] Revista Information Technology. Suplemento Especial Seguridad, 2005.

Downloads

Published

2008-07-01

Issue

Section

Original Articles

How to Cite

[1]
“Using Exception Handling to Build Opaque Predicates in Intermediate Code Obfuscation Techniques”, JCS&T, vol. 8, no. 02, pp. p. 71–77, Jul. 2008, Accessed: Mar. 12, 2026. [Online]. Available: https://journal.info.unlp.edu.ar/JCST/article/view/744

Similar Articles

You may also start an advanced similarity search for this article.