La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

M.C. Juan Carlos Olivares Rojas

Presentaciones similares


Presentación del tema: "M.C. Juan Carlos Olivares Rojas"— Transcripción de la presentación:

1 M.C. Juan Carlos Olivares Rojas
Ofuscación M.C. Juan Carlos Olivares Rojas

2 Ofuscación La ofuscación es una técnica avanzada de refactorización que permite a un código mantenerle obscuro (es decir no muy legible) con diversos propósitos de optimización. ¿Para que se hace ofuscación? ¿No viola esto el principio de claridad en la implantación?

3 Ofuscación La ofuscación se realiza en muchas casos para hacer un código ilegible, también en muchos casos se puede reducir el tamaño del código fuente y del código binario realizado. Al realizar cualquier tipo de programa se puede aplicar técnicas de reingeniería como la ingeniería inversa para de un código binario tratar de obtener su código fuente.

4 Ofuscación En mucho tipos de aplicaciones como las aplicaciones móviles se ofusca el código objeto generado para obtener un código más pequeño. Un programa puede ser fácilmente decompilable, por este motivo se ofusca con la premisa de que si esto llegará ocurrir, el que lo hiciera le costaría mucho trabajo entender el programa y modificarlo.

5 Ofuscación En el caso de programas ejecutables (.exe) es mucho más difícil obtener un código en lenguaje de alto nivel, dado que el proceso de decompilación deja sus resultados en ensamblador y por lo tanto es necesario saber como el compilador ensambla cada línea de código. Por este motivo muchas empresas grandes del sector informático realizan sus proyectos en sus propios compiladores.

6 Ofuscación Actualmente la ofuscación se emplea más en la ofuscación de código dinámico, dado que aquí es muy importante tanto el tamaño del código como la legibilidad de este, tal es el caso de HTML. La ofuscación si bien es cierto viola principios de buena prácticas de Ing. de Software, se realiza con un propósito específico hasta el final del proceso.

7 Ofuscación En algunos casos la ofuscación se logra simplemente refactorizando el nombre de las variables pero en muchos casos esto no sirve. Para lograr la ofuscación se deberá modificar el flujo del programa de tal forma que menos instrucciones o en algunos casos más instrucciones deben de realizar el mismo programa.

8 Ofuscación En algunos casos resulta que ofuscar el código puede ser que el tamaño del código fuente y del programa aumente, debido a que es común que las variables tengan nombres muy grandes o bien se incluyan instrucciones extras, se descompongan ciclos, se cambien y mapeen estructuras, etc. Existen concursos de ofuscación de código

9 Ofuscación

10 Actividad De un programa en Java o C/C++ realizar ofuscación al código de manera manual de tal forma que tengan dos versiones del código: Una versión de programa optimizada que ocupa menos tamaño su código fuente. Una versión del programa cuyo código es no legible (mayor su tamaño fuente).

11 Actividad Se deberá calcular el % de disminución y de aumento del tamaño del código fuente y objeto. Una vez creados las nuevas modificaciones, se distribuirán los códigos de otros compañeros para que intenten deducir que realiza el programa.

12 Actividad Se deberá tomar el tiempo que tardarán en realizar la clarificación del programa. Se deberá entregar el código en claro y una explicación en notación de diseño (cualquiera que gusten) de lo que el programa realiza. Posteriormente se realizará la comprobación del diseño de sus otros compañeros. (Estas actividades son en otra sesión de clases)

13 ¿Preguntas, dudas y comentarios?


Descargar ppt "M.C. Juan Carlos Olivares Rojas"

Presentaciones similares


Anuncios Google