flex - ofuscada - ofuscar dll
OfuscaciĆ³n de Flex/Air (4)
He escrito (la mayoría de) una aplicación en Flex y me preocupa proteger el código fuente. Inicié una demostración del descompilador de archivos swf de Trillix y abrí el archivo swf que se instaló 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.
¿Alguien tiene alguna experiencia con Flash / Actionscript 3 / Flex ofuscadores? ¿Puedes recomendar un buen producto?
Bueno, en mi opinión, la solución más fácil y segura es una mezcla de maclema y respuesta de Borek:
El código de ofuscación puede ser un gran problema si no lo incluyó en su proceso desde el principio y si su aplicación es bastante grande: es probable que la ofuscación haga que su aplicación se corrompa si usó paquetes remotos (y no se lo declaró al ocultador) si solía usar muchas variables no escritas en Objetos o clases dinámicas ....
Por lo tanto, si aplica la solución de maclema en su gran aplicación y usa la ofuscación en su envoltorio (que es una aplicación pequeña que probablemente sea muy fácil de ocultar), su código será el más seguro y el menos problemático. 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 que el código de tu aplicación sea tan malo, o está relacionado con la CIA o ya eres muy rico (o ambos)
Gracias a todos por sus respuestas o comentarios
El procedimiento sugerido por maclema no impedirá que ningún atacante obtenga la fuente; la "aplicación contenedora" deberá estar desencriptada para que el atacante pueda descubrir que usted usa AES (o cualquier otro algoritmo) y obtendrá el 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 última versión, consulte http://www.amayeta.com/software/swfencrypt/ .
Esto es lo que haría.
Compila tu aplicación a un archivo SWF. Luego encripte el SWF usando AES.
Cree una aplicación de "envoltura" que cargue el SWF encriptado en un ByteArray utilizando el URLLoader
Utilice la biblioteca as3crypto para descifrar el 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
Recientemente lancé un juego de iOS y Android usando 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
Cargué un binario de Windows pero te recomiendo que sigas las instrucciones para compilarlo 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 alteración de bytecodes en el futuro.