2008-08-07 16 views
21

He escrito (la mayoría de) una aplicación en Flex y me preocupa proteger el código fuente. Inicié una demostración de Trillix swf decompiler y abrí el archivo swf que estaba instalado en mi directorio Archivos de programa. Vi que todos los paquetes actionscript que escribí estaban allí. No estoy demasiado preocupado con los paquetes, a pesar de que hay una cantidad sustancial de código, porque todavía parece bastante inutilizable sin los archivos mxml. Creo que se convierten en actionscript, o al menos eso espero. Sin embargo, aún me gustaría explorar la ofuscación.Ofuscación de Flex/Air

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

Respuesta

13

Esto es lo que haría.

  • Recopila tu aplicación en un archivo SWF. Luego encripte el SWF usando AES.

  • Hacer una aplicación de "contenedor" que carga el SWF encriptado en un ByteArray usando URLLoader

  • utilizar la biblioteca as3crypto para descifrar el archivo SWF en tiempo de ejecución.

  • Una vez descifrado, use 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 es imposible, pero es más difícil.

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

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

20

El procedimiento sugerido por maclema realmente no se detendrá cualquier atacante desde la obtención de la fuente - la "aplicación envoltorio" tendrá que ser sin cifrar por lo que el atacante será capaz de averiguar que utiliza AES (o cualquier otro algoritmo) y obtendrá la clave de descifrado de una manera similar (porque debe estar en texto plano en algún lugar). Una vez que tenga esto, podrá descifrar fácilmente su archivo SWF.

La única solución confiable (bueno ...) es algún tipo de ofuscador: utilizamos Amayeta que funciona para Flex en la versión más reciente. Consulte http://www.amayeta.com/software/swfencrypt/.

+1

Creo que esta es la respuesta que debe ser aceptada. –

3

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

ofuscamiento de código puede ser un gran headach si no la incluyó en su proceso desde el principio y si su La aplicación es bastante grande: es probable que la ofuscación haga que su aplicación se corrompa si utilizó paquetes remotos (y no lo declaró al ocultador) si utilizó muchas variables sin título en Objetos o clases dinámicas ...

Así: si haces la solución de maclema en tu gran aplicación y usas la ofuscación en tu envoltorio (que es una aplicación pequeña que probablemente sea muy fácil de ocultar) tu código será el más seguro y el mejor de todos. t. Solo un pirata muy enojado se tomaría el tiempo para realizar una ingeniería inversa de la ofuscación para luego descifrar el paquete ....Bueno, si alguien quiere el código de aplicación taaan malo que es ya sea en relación CIA o que ya está muy rica (o ambos)

gracias a todos por sus respuestas

0

Hace poco lanzó un juego para iOS y Android con Flash. Busqué en Internet un buen programa gratuito para proteger el código fuente en mi archivo SWF y no pude encontrar nada, así que escribí uno. Todavía está en desarrollo y es "usarlo bajo su propio riesgo", pero funcionó para mí.

Se lanzó en github. Compruébalo y cuéntame lo que piensas.

https://github.com/Teesquared/flasturbate

he subido un binario ventanas pero recomendamos que siga las instrucciones para construir por sí mismo si quiere darle una oportunidad.

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 alteración de bytecodes en el futuro.

Cuestiones relacionadas