La plataforma .NET de Microsoft, así como los entornos de programación en JAVA, se basan en una filosofía de just-in-time compilation (compilación bajo demanda al momento de la ejecución). Los programas desarrollados de esta manera se ejecutan en un entorno o framework independiente de la plataforma, basado en objetos y, en algunos casos, permitiendo que interactúen componentes desarrollados en distintos lenguajes de programación.
La clave de esta flexibilidad radica en que, tanto en JAVA como en las plataformas .NET, la compilación resulta en un código intermedio, independiente de la plataforma (bytecode y MSIL respectivamente) que brinda la flexibilidad mencionada. Sin embargo, dicha flexibilidad tiene un costo. Hoy en día, y utilizando herramientas gratuitas que pueden descargarse desde Internet, es asombrosamente fácil aplicar tecnologías de descompilación e ingeniería inversa a las dos plataformas de desarrollo más populares: JAVA y .NET.
En el presente trabajo, se analiza el riesgo de pérdida de propiedad intelectual que apareja esta arquitectura y se describe un mecanismo de protección, la ofuscación. Se analiza una transformación de ofuscación del estado del arte y se propone una mejora sobre la misma, elevando el nivel de protección y dificultando la tarea de los posibles atacantes a la propiedad intelectual.