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

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

Descripción completa

Detalles Bibliográficos
Autores: Dolz, Daniel, Parra, Gerardo
Tipo de recurso: artículo
Estado:Versión publicada
Fecha de publicación:2008
País:Argentina
Institución:Universidad Nacional de La Plata
Repositorio:SEDICI (UNLP)
Idioma:inglés
OAI Identifier:oai:sedici.unlp.edu.ar:10915/9626
Acceso en línea:http://sedici.unlp.edu.ar/handle/10915/9626
Access Level:acceso abierto
Palabra clave:Ciencias Informáticas
obfuscation
opaque predicates
Descripción
Sumario: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.