Ofuscacion en
Ofuscacion en
Ofuscacion en
http://jorgepedraza.wordpress.com/2010/06/20/ofuscacion-en-asp-net/
A partir de esto y basado en el principio de que la plataforma .NET generalmente trata las aplicaciones finales como un ensamblado .NET (*.DLL o *.EXE) , cuyo elemento contiene codigo compilado en lenguaje de maquina virtual especifico, en este caso Lenguaje Intermedio IL para su ejecucin por parte del CLR de .NET Framework. Entonce el IL (Lenguaje Intermedio) brinda un mundo de posibilidades para ir ms alla de la reflexin elemental; una opcin de esto es una via alterna para obtener una descripcin completa del contenido de una aplicacin, representada en algn lenguaje de programacin de alto nivel. Para logra dicho proposito se puede contar con la herramienta .NET Reflector. .NET Reflector Es una herramienta que permite analizar y explorar los ensamblados compilados en .NET, visualizando en ellos: codigo C#, Visual Basic, IL y otros. En vista de este argumento, mucho se pregunta como se puede proteger el cdigo de una aplicacin, tal es el caso de ASP.NET. Para esto existe una series de mecanismos de proteccin, entre los cuales se menciona la Ofuscacin. El principio bsico de la ofuscacin es renombrar (cambiar de nombre) las series de identificadores
1 de 9
http://jorgepedraza.wordpress.com/2010/06/20/ofuscacion-en-asp-net/
cadenas de caracteres utilizados durante el desarrollo de una aplicacin bien sea a nivel de codigo fuente o aplicacin compilada en codigo de maquina. Un ejemplo sencillo puede ser: public int Suma(int valor1, int valor2) { return valor1 + valor2; } Ahora aplicando Ofuscacin: public int a(int a_0, int a_1) { return a_0 + a_1; } Con esto se busca impedir o hacer ms difcil los intentos de ingeniera reversa y desensamblado de una aplicacin, para la obtencin del cdigo fuente cercano a la forma original. En ocasiones la ofuscacin, hace que los programas resultantes sean ms pequeos (aunque puede hacer que los programas sean ms grandes en otros casos). Entonce desde aqu empresa como preemptive desarrolla soluciones relacionada con la ofuscacin de aplicaciones, como es el caso del Ofuscador .NET. .NET Obfuscator (Ofuscador .NET) conocido tambien como Dotfuscator es una herramienta que ayuda proteger los programas .NET contra la ingenieria reversa, adems de hacerlos ms pequeo y eficiente. Versiones de Dotfuscator: Dotfuscator Software Services Community Edition (Edicin de Instrumentacin y Endurecimiento de Aplicaciones Ligeras): Esta edicin reducida es incluida en t copia de Visual Studio. Esta es una solucin ideal para aquellos que requiere el nivel ms basico de protecin de ingenieria reversa sobre aplicaciones sencillas. Dotfuscator Commercial Edition (Edicin de Instrumentacin y Endurecimiento de Aplicaciones Empresariales): La versin de grado comercial de Dotfuscator, pretende apoyar desarrolladores y organizaciones que requiere el nivel ms alto de protecin para su aplicaciones. S tu desarrolla software comercial, esta solucin asegura soporte y protecin de la aplicacin. Dotfuscator Software Services Community Edition. Ofuscacin Renombrar ensamblado cruz Renombrar Esquemas Renombrar Prefijos Mejora de la induccin de sobrecarga Ofuscacin Incremental Reporte HTML de renombramiento Flujo de control Dotfuscator Commercial Edition.
2 de 9
http://jorgepedraza.wordpress.com/2010/06/20/ofuscacion-en-asp-net/
Encriptacin de Cadena Interfaz de Usuario Interfaz de usuario Independiente Integracin con Visual Studio Linea de comando MSBuild Tipos de aplicaciones soportadas Aplicaciones Office Aplicaciones SQL CRL ClickOnce Integrado SilverLight XAP Directory WildCard Mtodos y Tipos genericos Soporte de ensamblado C++ Administrado (modo mezclado) Soporte de ensamblado satlite Construir / Empaquetar Resigning ensamblado nombrado fuertemente. Firmar Authenticode Eventos pre y pos construicin Ruta de busqueda de ensamblado dependiente definido por usuario. Soporte de Depuracin Ida y Vuelta de PDB Traduccin de siguimiento de pila Optimizacin de Implementacin Vinculo de ensamblado Reporte de eliminacin HTML/XML Eliminacin de codigo sin Uso Eliminacin de constante Avanzada Protecin de aplicacin Deteccin de manipulacin Notificaciones de manipulacin Marca de agua Administracin de ciclo de vida Token de vida incrustado Expiracin sobre accin por defecto Expiracin sobre accin personalizado
3 de 9
http://jorgepedraza.wordpress.com/2010/06/20/ofuscacion-en-asp-net/
Origen de Token de vida personalizado Soporte Inteligente de Tiempo de ejecucin Punto Final personalizado Punto Final RIS Comercial Punto Final Portal de comunidades Soporte entrada y salida Opt Seguimiento de Aplicaciones Mensajes SSL Llaves extendidas (carga de datos personalizado) Enviar PII Enviar ID de instancia personalizada (Numero de serial de aplicacin) Tipos de mensajes inteligente de tiempo de ejecucin Caracterstica Tick Caracterstica Duracin Prueba de Rendimiento Perfil de sistema Precio Descarga Incluido gratis en visual Studio 2010 Solicitud de Couta Limitado Limitado
Una vez comprendido el marco teorico, se procede a la practica donde se trata con enfoque una solucin sencilla de un proyecto tipo aplicacin ASP.NET 4.0 en lenguaje C# 4.0 junto a la herramienta Dotfuscator Software Services Community Edition. PASOS SENCILLOS PARA USAR DOTFUSCATOR CE (COMMUNITY EDITION): 1. 2. 3. 4. 5. Se abre una solucin del tipo aplicacin Windows o Web en Visual Studio 2010. Se pulsa clic sobre la opcin Tools o Herramientas de la barra de menu de Visual Studio 2010. Se pulsa clic sobre la opcin Dotfuscator Software Services. Se pulsa boton derecho del mouse sobre el nodo Dotfuscator1, y se hace clic en Add Assemblies. Se selecciona y abre el ensamblado previamente generado que esta ubicado en la carpeta BIN del proyecto de dicha solucin. 6. Ahora se dirige al nodo Configuration Options, nodo Renaming, Pestaa Exclusions. Finalmente desde aqu se marca aquellos elementos de codigo que no desea Osfucar o sea excluir. 7. Se pulsa clic en el boton en forma de Triangulo situado en la barra de herramienta o la opcin Build Project (Ctrl+B) del Menu Build. 8. Finalmente nuestro ensamblado .NET ofuscado esta situado en la carpeta, por ejemplo: C:\Dotfuscated. PUNTOS IMPORTANTES DE DOTFUSCATOR CE CON ASP.NET:
4 de 9
http://jorgepedraza.wordpress.com/2010/06/20/ofuscacion-en-asp-net/
Cuando planifique la ofuscacin de un ensamblado .NET por ejemplo *.DLL con la herramienta Dotfuscator CE, cercirese que la opcin Library Mode este desmarcada, ya que esta opcin le indica al Dotfuscator que los elementos publicos de la clase no sean renombrados, y as se mantenie intacto la accesibilidad de los mismos a llamadas externas. Como bien se conoce la estructura de un proyecto de aplicacin ASP.NET; en una pagina ASPX se va encontrar vinculado tres archivos; un ejemplo esto es : Pagina.ASPX, Pagina.ASPX.cs, Pagina.ASPX.designer.cs, los cuales durante la compilacin son procesados y vinculado en un archivo de extension *.DLL y Pagina Web ASPX (Pagina.ASPX). Ahora s procede a ofuscar el archivo con extensin *.DLL, se debe tomar como precaucin la exclusin primordial de los nombres de paginas, controles y eventos que estn referenciados en dicho ensamblado .NET los cuales tiene relacin con nuestro pagina ASPX y as se logra mantener vinculado los identificadores usados en el desarrollo con la pagina ASPX.
Despus de ofuscar el archivo *.DLL, se obtiene el siguiente resultado visualizado a travs de la herramienta Reflector .NET:
Finalmente se puede colocar el archivo con extensin *.dll en la carpeta bin y las paginas ASPX relacionadas en la raz de determinado directorio de aplicacin del IIS.
Otro punto que se puede resaltar en este tema, es la gestin de aplicaciones escrita en el Lenguaje Visual Basic 2010. Para el cual se va encontrar limitado de ciertas caractersticas mencionadas previamente para Dotfuscator CE. Por ejemplo las aplicaciones bien sea del tipo Windows o Web en Visual Basic van a
5 de 9 17/06/2013 12:56 p.m.
http://jorgepedraza.wordpress.com/2010/06/20/ofuscacion-en-asp-net/
estar limitada para la ofuscacin, ya que estas internamente gestiona el uso de mtodos y tipos genericos a travs del objeto My intrnseco de Visual Basic. Entonce para estos casos se sugiere usar la versin sn limitaciones de Dotfuscator (Dotfuscator Commercial Edition). En resumen se puede notar que dentro del desarrollo de aplicaciones .NET, vamos a encontrar un tema de gran importancia como es la proteccin de la propiedad intelectual, a travs de ciertos mecanismos como la ofuscacin de codigo. Y esto puede ser posible con la herramienta Dotfuscator de la empresa preemptive. Anexo Cdigo fuente para ilustrar el tema: TestObfuscator (ASP.NET 4.0, C# 4.0)
About these ads
Comentarios (3)
3 comentarios
1. Un comentario, creo que est errneo el comentario Cuando planifique la ofuscacin de un ensamblado .NET por ejemplo *.DLL con la herramienta Dotfuscator CE, cercirese que la opcin Library Mode este desmarcada, debera ser Library Mode marcado. Citando como fuente la informacin de la documentacin propia de la herramienta DotOfuscator. Library mode: This setting tells Dotfuscator that the selected input assembly constitutes a library. For obfuscation purposes, a library is defined as an assembly that is referenced from other components not specified as one of the inputs in this run. When an assembly is obfuscated in Library Mode, publicly visible items are not renamed, thus keeping your public API accessible to external callers. Comentario por sergio octubre 27, 2011 @ 7:07 am | Responder
Hola Sergio.
6 de 9
http://jorgepedraza.wordpress.com/2010/06/20/ofuscacion-en-asp-net/
Gracias por t comentario! T explico: S revisa bien el articulo, yo coloque un titulo previo denominado: PUNTOS IMPORTANTES DE DOTFUSCATOR CE CON ASP.NET que se relaciona con el comentario resaltado por ti previamente. Una solucin ASP.NET Web Application, por ejemplo son: Paginas.aspx + WebApp.DLL (Biblioteca de Vinculo Dinmico) bajo .NET Framework. S la intencin es Ofuscar dicha Biblioteca (WebApp.DLL) se debe desmarca Library mode. Por que? Significado de Library mode segn la documentacin de PreEmptive es: Esta opcin le indica a Dotfuscator que el ensamblado de entrada seleccionado constituye una biblioteca. Para fines de ofuscacin, una biblioteca se define como un conjunto que se hace referencia en otros componentes no especificados como una de las entradas en esta ejecucin. Cuando un Assembly est ofuscado en modo de biblioteca (Library mode), elementos visibles pblicamente No se renombra, manteniendo su API pblica accesible a los llamadores externos. Entonces s verifica el codigo de ejemplo, se esta usando un clase llamada Matematica donde hay un elemento visiblemente publico Suma que ser generado dentro del resultado WebApplication3.dll, para el cual se necesita Ofuscar (renombrar la clase Matematica y su mtodo pblico) en dicho resultado y demostrar la ofuscacin de una Aplicacin Web ASP.NET. Bueno eso es todo por lo momento. Espero que esto sea de utilidad para aclara la duda generada. Saludos. Comentario por jorgepedraza octubre 27, 2011 @ 12:39 pm | Responder 2. Gracias por la aclaracin, fue un error mio de interpretacin. Un saludo Comentario por Sergio noviembre 17, 2011 @ 5:40 pm | Responder
Deja un comentario
Pginas Acerca de
7 de 9