Descompilar Action Script con flasm

22 Ago 2010 En: Desarrollo

En unas cuantas oportunidades he tenido la necesidad de modificar levemente el comportamiento de una película flash, normalmente uno debe recurrir a la persona que hizo dicha película para que haga los cambios correspondientes, sin embargo no siempre es posible bien sea porque uno no sabe quien lo hizo o porque no le van a hacer el cambio :D

Se pueden hacer pequeños cambios muy específicos en el Action Script de la película, no es que pueda cambiar dramáticamente el comportamiento (al menos yo no lo he intentado), en mi caso en particular he podido cambiar las urls a las que dirigen los botones y cambiar el scaleMode por ejemplo.

Yo uso una herramienta llamada flasm para descompilar el Action Script, es una utilidad libre para la línea de comandos pero bastante fácil de usar, por ejemplo la última vez que la necesité, fue para hacer que una película no tuviera un tamaño fijo sino que se ajustara al tamaño establecido en los atributos de la etiqueta en el html, el procedimiento es algo como (ya doy por hecho, que descargó la herramienta y la descomprimió en una carpeta llamada flasm):

flasm$ ./flasm -d player.swf > player.flm

Esto extrae el Action Script del archivo swf de manera que se pueda editar en un editor de textos convencional, en mi caso edité player.flm con gedit y busqué las ocurrencias de la cadena "noScale" y reemplazandolas por "showAll", en este punto hay que tener algo de sentido común y mirar el entorno antes de reemplazar a ciegas, es decir no es reemplazar por reemplazar, noScale es uno de los valores permitidos para scaleMode de manera que scaleMode debe aparecer cerca para que sea candidato para el reemplazo (si desea cambiar una url por ejemplo pues es el mismo procedimiento, se busca la url y se cambia por la nueva); una vez hechos los cambios podemos guardar el archivo y reintegrarlo al swf.

flasm$ ./flasm -a player.flm

Ahora el archivo swf está listo, buena suerte y no olvide darle una leida a la doc completa de flasm.

<Anterior

Quién es?

View Andrés F Vargas's LinkedIn profile Andrés F Vargas es un programador Colombiano, que le gusta el open source, en los últimos años se ha enfocado en el desarrollo y operación de aplicaciones web.