Pregunta

He escrito (la mayor parte) de una aplicación en Flex y me preocupa proteger el código fuente.Encendí una demostración de Descompilador swf de Trillix y abrí el archivo swf que estaba instalado en mi directorio de Archivos de programa.Vi que todos los paquetes de ActionScript que escribí estaban allí.No estoy demasiado preocupado por los paquetes, aunque hay una cantidad sustancial de código, porque todavía parece bastante inutilizable sin los archivos mxml.Creo que están convertidos a ActionScript, o al menos eso espero.Sin embargo, todavía me gustaría explorar la ofuscación.

¿Alguien tiene alguna experiencia con los ofuscadores Flash/Actionscript 3/Flex?¿Puedes recomendar un buen producto?

¿Fue útil?

Solución

Esto es lo que haría.

  • Compile su aplicación en un archivo SWF.Luego cifre el SWF usando AES.

  • Cree una aplicación "contenedor" que cargue el SWF cifrado en un ByteArray usando URLLoader

  • Utilizar el as3cripto biblioteca para descifrar el swf en tiempo de ejecución.

  • Una vez descifrado, utilice Loader.loadBytes para cargar el swf descifrado en la aplicación contenedora.

Esto hará que sea mucho más difícil obtener su código.No imposible, pero sí más difícil.

Para aplicaciones de AIR, puede dejar el SWF cifrado al entregar la aplicación al usuario final.Luego, podría proporcionar una clave de registro que contenga la clave utilizada para descifrar el SWF.

Además, aquí hay un enlace a un ofuscador AS3.Aunque no estoy seguro de qué tan bien funciona.http://www.ambiera.com/irrfuscator/index.html

Otros consejos

El procedimiento sugerido por maclema realmente no impedirá que ningún atacante obtenga la fuente: la "aplicación contenedora" deberá estar descifrada para que el atacante pueda descubrir que usted usa AES (o cualquier otro algoritmo) y obtendrá la clave de descifrado de manera similar (porque debe estar en texto sin formato en algún lugar).Una vez que tenga esto, podrá descifrar su archivo SWF fácilmente.

La única solución confiable (bueno...) es algún tipo de ofuscador; usamos Amayeta, que funciona para Flex en la última versión; consulte http://www.amayeta.com/software/swfencrypt/ .

Bueno, en mi opinión, la solución más fácil y segura es una mezcla de maclema y la respuesta de Borek:

Ofuscar código puede ser un gran dolor de cabeza si no lo incluiste en tu proceso desde el principio y si tu aplicación es bastante grande:es probable que la ofuscación dañe su aplicación si usó paquetes remotos (y no declaró esto al ofuscador) si usó muchas variables sin tipo en Objetos o clases dinámicas...

Entonces:Si utiliza la solución de Maclema en su aplicación grande y utiliza la ofuscación en su contenedor (que es una aplicación pequeña que probablemente sea muy fácil de ofuscar), su código será el más seguro y el menos problemático.Sólo un pirata muy enojado se tomaría el tiempo de aplicar ingeniería inversa a la ofuscación para luego descifrar el paquete...Bueno, si alguien quiere tanto el código de tu aplicación, o está relacionado con la CIA o ya eres muy rico (o ambas cosas).

Gracias a todos por sus respuestas o comentarios

Recientemente lancé un juego para iOS y Android usando Flash.Busqué en Internet un buen programa gratuito para proteger el código fuente de mi SWF y no pude encontrar nada, así que escribí uno.Todavía está en desarrollo y es "úselo bajo su propio riesgo", pero funcionó para mí.

Está lanzado en github.Compruébalo y déjame saber lo que piensas.

https://github.com/Teesquared/flasturbate

Subí un binario de Windows, pero te recomiendo que sigas las instrucciones para crearlo tú mismo si quieres probarlo.

Este ofuscador funciona directamente en el archivo SWF.Actualmente solo cambia el nombre de los símbolos, pero se basa en un marco que podría admitir la modificación de códigos de bytes en el futuro.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top