Comunidad de diseño web y desarrollo en internet

Descompiladores para Flash, ¿tenemos defensas?

El arte de la ingeniería inversa ha sido fuente de creatividad de muchísimos hackers (Y crackers) durante mucho tiempo; tanto así, que ya existía el crack de Flash MX 2004 dos días después de su lanzamiento.

Todo proceso tiene su retroceso; por ejemplos, un Applet de Java puede ser descompilado, obtener el código exacto con el que fue creado y, así como con Java, con los SWF de Flash también podemos hacer el mismo procedimiento, ¿Preocupante?



Para los tiempos de Flash 4, cuando realmente hubo ActionScript estructurado dentro de Flash y creció la demanda del producto; surgieron empresas, como Swish, GoldShell y otras (Que épocas), que crearon software de “expansión” para Flash, como los a priori famosos Flax, Swish, swFX, entre otros (De hecho, Swish sigue siendo muy actual); todo esto impulsado por Macromedia (Indirectamente) al haber liberado el código del formato SWF http://www.openswf.org



Al ser libre, las casas de software también crearon descompiladores para Flash que podían tomar un archivo SWF y mostrar el código, símbolos, sonidos y animaciones con los que fue creado; esto promocionado como una herramienta para los que hemos perdido los .FLA originales de un archivo, pero que, como toda herramienta, puede ser usada para lo contrario.



A estos tiempos de MX 2004, sigue existiendo esta “amenaza”, descompiladores como el Sothink SWFDecompiler, el ActionScript Viewer o el Flare han hecho que el código que creemos en Flash sea fácilmente vulnerable y *legible* por cualquiera con las herramientas.

Estas herramientas, en si, no son algo malo ni son culpables del uso que se les de, ya que originalmente, fueron hechas como recuperador de información perdida, de hecho, el respetado desarrollador Colin Moock recomendó en su weblog el uso de una de ellas; aun así, nuestro código es violable, ¿tenemos soluciones?



Al llegar los virus, llegaron los antivirus, al llegar los ataques a las redes (Y los virus de fallos garrafales de Windows, como el MSBlaster o el Sasser) llegaron los Firewall, la solución a nuestro dilema, también existe, los ofuscadores



De épocas de los primeros UNIX, donde el software que se vendía no se daba con instaladores sino con código fuente para compilar, la solución para evitar el robo de código era ofuscarlo (Proceso por el cual, el código estructurado que hacemos es transformado en líneas inentendibles aplicando técnicas extremas de la sintaxis, como eliminar los ENTER, cambiar los nombres de variables, utilizar referencias a apuntadores en vez de variables y procurar hacer estructuras que quepan en una línea de código); pero al ser tan tedioso este proceso, se creo software especializado en “ofuscar” el código de modo que el proceso fuera automático y la gente que tuviera acceso al código fuente no vería mas que código funcional pero inentendible.



En Flash también tenemos estas herramientas, podemos ofuscar nuestro código y aunque tengan acceso a el y tienen el nivel de conocimientos, no lo entenderán

En el mundo de los descompiladores tenemos el bueno, el malo y el feo, así que empecemos por el feo, que irónicamente, también es el malo



    Obfu

    http://opaque.net/~dave/obfu/

    De los primeros que conocí, ofusca a nivel de bytecode (Es decir, toma el SWF y leyendo byte a byte lo recompila ofuscado) lo cual lo hace ostentosamente poderoso; pero así mismo, algunos Player celosos a partir de su “Hash table”(Una tabla donde sabe que el SWF no fue tocado) no permiten ejecutar el código ofuscado con este programa :(



    ASO ¿El bueno?

    http://www.genable.com/aso/

    ActionScript Obfuscator (ASO) es por mucho, el mas famoso y usado de los ofuscadores; aunque se maneje por línea de comandos es muy sencillo de usar y genera muy buenos resultados.




Ahora solo falta que cada uno de ustedes lo pruebe y compare los resultados; en realidad es muy bueno el desempeño y Genable en especial tiene algunas otras herramientas que hacen que el ASO este en nuestro kit especial de desarrollo (Un saludo a vikt0ry)



¿Te han descompilado tus proyectos?, ¿Regalas libremente el código para despreocuparte por ello?, ¿Ofuscas hasta la lista de compra de los domingos?

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate