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?