Utilización de excepciones para implementar predicados opacos en técnicas de ofuscación de código intermedio

Autores
Dolz, Daniel; Parra, Gerardo
Año de publicación
2007
Idioma
español castellano
Tipo de recurso
documento de conferencia
Estado
versión publicada
Descripción
La plataforma .NET de Microsoft se basa 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 se da 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). Sin embargo, dicha flexibilidad tiene un costo. Hoy en día, y utilizando herramientas gratuitas que pueden descargarse desde Internet, es sumamente fácil aplicar tecnologías de ingeniería inversa a las dos plataformas de desarrollo más populares: JAVA y .NET. De todas las técnicas que los desarrolladores pueden utilizar para proteger su propiedad intelectual, la ofuscación es la técnica más aceptada y de hecho, es la única utilizada comercialmente. En este trabajo, proponemos el uso de los mecanismos de excepción (bloques try-catch) que brinda la plataforma .NET como una manera de mejorar la calidad de uno de los bloques básicos de la ofuscación, los predicados opacos.
Microsoft’s .NET Framework, and JAVA platforms, are based in a just-in-time compilation philosophy. Software developed using these technologies are 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. It is really easy, with tools available for free in the web, to decompile this intermediate code and obtain a working, readable version of the original source code. Of all techniques developers can use to protect their intellectual property, obfuscation is the most accepted and commercially available one. In the present 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: opaques predicates.
Red de Universidades con Carreras en Informática (RedUNCI)
Materia
Ciencias Informáticas
Informática
Predicate logic
PROGRAMMING LANGUAGES
código intermedio
transformaciones de ofuscación
predicados opacos
obfuscation transformation
opaque predicates
Nivel de accesibilidad
acceso abierto
Condiciones de uso
http://creativecommons.org/licenses/by-nc-sa/2.5/ar/
Repositorio
SEDICI (UNLP)
Institución
Universidad Nacional de La Plata
OAI Identificador
oai:sedici.unlp.edu.ar:10915/23376

id SEDICI_6ba9bc73eeea49ae93e572e2d15774a5
oai_identifier_str oai:sedici.unlp.edu.ar:10915/23376
network_acronym_str SEDICI
repository_id_str 1329
network_name_str SEDICI (UNLP)
spelling Utilización de excepciones para implementar predicados opacos en técnicas de ofuscación de código intermedioDolz, DanielParra, GerardoCiencias InformáticasInformáticaPredicate logicPROGRAMMING LANGUAGEScódigo intermediotransformaciones de ofuscaciónpredicados opacosobfuscation transformationopaque predicatesLa plataforma .NET de Microsoft se basa 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 se da 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). Sin embargo, dicha flexibilidad tiene un costo. Hoy en día, y utilizando herramientas gratuitas que pueden descargarse desde Internet, es sumamente fácil aplicar tecnologías de ingeniería inversa a las dos plataformas de desarrollo más populares: JAVA y .NET. De todas las técnicas que los desarrolladores pueden utilizar para proteger su propiedad intelectual, la ofuscación es la técnica más aceptada y de hecho, es la única utilizada comercialmente. En este trabajo, proponemos el uso de los mecanismos de excepción (bloques try-catch) que brinda la plataforma .NET como una manera de mejorar la calidad de uno de los bloques básicos de la ofuscación, los predicados opacos.Microsoft’s .NET Framework, and JAVA platforms, are based in a just-in-time compilation philosophy. Software developed using these technologies are 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. It is really easy, with tools available for free in the web, to decompile this intermediate code and obtain a working, readable version of the original source code. Of all techniques developers can use to protect their intellectual property, obfuscation is the most accepted and commercially available one. In the present 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: opaques predicates.Red de Universidades con Carreras en Informática (RedUNCI)2007-10info:eu-repo/semantics/conferenceObjectinfo:eu-repo/semantics/publishedVersionObjeto de conferenciahttp://purl.org/coar/resource_type/c_5794info:ar-repo/semantics/documentoDeConferenciaapplication/pdf1827-1839http://sedici.unlp.edu.ar/handle/10915/23376spainfo:eu-repo/semantics/openAccesshttp://creativecommons.org/licenses/by-nc-sa/2.5/ar/Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Argentina (CC BY-NC-SA 2.5)reponame:SEDICI (UNLP)instname:Universidad Nacional de La Platainstacron:UNLP2025-09-03T10:28:12Zoai:sedici.unlp.edu.ar:10915/23376Institucionalhttp://sedici.unlp.edu.ar/Universidad públicaNo correspondehttp://sedici.unlp.edu.ar/oai/snrdalira@sedici.unlp.edu.arArgentinaNo correspondeNo correspondeNo correspondeopendoar:13292025-09-03 10:28:13.084SEDICI (UNLP) - Universidad Nacional de La Platafalse
dc.title.none.fl_str_mv Utilización de excepciones para implementar predicados opacos en técnicas de ofuscación de código intermedio
title Utilización de excepciones para implementar predicados opacos en técnicas de ofuscación de código intermedio
spellingShingle Utilización de excepciones para implementar predicados opacos en técnicas de ofuscación de código intermedio
Dolz, Daniel
Ciencias Informáticas
Informática
Predicate logic
PROGRAMMING LANGUAGES
código intermedio
transformaciones de ofuscación
predicados opacos
obfuscation transformation
opaque predicates
title_short Utilización de excepciones para implementar predicados opacos en técnicas de ofuscación de código intermedio
title_full Utilización de excepciones para implementar predicados opacos en técnicas de ofuscación de código intermedio
title_fullStr Utilización de excepciones para implementar predicados opacos en técnicas de ofuscación de código intermedio
title_full_unstemmed Utilización de excepciones para implementar predicados opacos en técnicas de ofuscación de código intermedio
title_sort Utilización de excepciones para implementar predicados opacos en técnicas de ofuscación de código intermedio
dc.creator.none.fl_str_mv Dolz, Daniel
Parra, Gerardo
author Dolz, Daniel
author_facet Dolz, Daniel
Parra, Gerardo
author_role author
author2 Parra, Gerardo
author2_role author
dc.subject.none.fl_str_mv Ciencias Informáticas
Informática
Predicate logic
PROGRAMMING LANGUAGES
código intermedio
transformaciones de ofuscación
predicados opacos
obfuscation transformation
opaque predicates
topic Ciencias Informáticas
Informática
Predicate logic
PROGRAMMING LANGUAGES
código intermedio
transformaciones de ofuscación
predicados opacos
obfuscation transformation
opaque predicates
dc.description.none.fl_txt_mv La plataforma .NET de Microsoft se basa 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 se da 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). Sin embargo, dicha flexibilidad tiene un costo. Hoy en día, y utilizando herramientas gratuitas que pueden descargarse desde Internet, es sumamente fácil aplicar tecnologías de ingeniería inversa a las dos plataformas de desarrollo más populares: JAVA y .NET. De todas las técnicas que los desarrolladores pueden utilizar para proteger su propiedad intelectual, la ofuscación es la técnica más aceptada y de hecho, es la única utilizada comercialmente. En este trabajo, proponemos el uso de los mecanismos de excepción (bloques try-catch) que brinda la plataforma .NET como una manera de mejorar la calidad de uno de los bloques básicos de la ofuscación, los predicados opacos.
Microsoft’s .NET Framework, and JAVA platforms, are based in a just-in-time compilation philosophy. Software developed using these technologies are 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. It is really easy, with tools available for free in the web, to decompile this intermediate code and obtain a working, readable version of the original source code. Of all techniques developers can use to protect their intellectual property, obfuscation is the most accepted and commercially available one. In the present 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: opaques predicates.
Red de Universidades con Carreras en Informática (RedUNCI)
description La plataforma .NET de Microsoft se basa 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 se da 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). Sin embargo, dicha flexibilidad tiene un costo. Hoy en día, y utilizando herramientas gratuitas que pueden descargarse desde Internet, es sumamente fácil aplicar tecnologías de ingeniería inversa a las dos plataformas de desarrollo más populares: JAVA y .NET. De todas las técnicas que los desarrolladores pueden utilizar para proteger su propiedad intelectual, la ofuscación es la técnica más aceptada y de hecho, es la única utilizada comercialmente. En este trabajo, proponemos el uso de los mecanismos de excepción (bloques try-catch) que brinda la plataforma .NET como una manera de mejorar la calidad de uno de los bloques básicos de la ofuscación, los predicados opacos.
publishDate 2007
dc.date.none.fl_str_mv 2007-10
dc.type.none.fl_str_mv info:eu-repo/semantics/conferenceObject
info:eu-repo/semantics/publishedVersion
Objeto de conferencia
http://purl.org/coar/resource_type/c_5794
info:ar-repo/semantics/documentoDeConferencia
format conferenceObject
status_str publishedVersion
dc.identifier.none.fl_str_mv http://sedici.unlp.edu.ar/handle/10915/23376
url http://sedici.unlp.edu.ar/handle/10915/23376
dc.language.none.fl_str_mv spa
language spa
dc.rights.none.fl_str_mv info:eu-repo/semantics/openAccess
http://creativecommons.org/licenses/by-nc-sa/2.5/ar/
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Argentina (CC BY-NC-SA 2.5)
eu_rights_str_mv openAccess
rights_invalid_str_mv http://creativecommons.org/licenses/by-nc-sa/2.5/ar/
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Argentina (CC BY-NC-SA 2.5)
dc.format.none.fl_str_mv application/pdf
1827-1839
dc.source.none.fl_str_mv reponame:SEDICI (UNLP)
instname:Universidad Nacional de La Plata
instacron:UNLP
reponame_str SEDICI (UNLP)
collection SEDICI (UNLP)
instname_str Universidad Nacional de La Plata
instacron_str UNLP
institution UNLP
repository.name.fl_str_mv SEDICI (UNLP) - Universidad Nacional de La Plata
repository.mail.fl_str_mv alira@sedici.unlp.edu.ar
_version_ 1842260121081610240
score 13.13397