Comunidad de diseño web y desarrollo en internet online

Como proteger nuestros desarrollos

Citar            
MensajeEscrito el 16 Mar 2010 04:19 am
Generalmente uno se preocupa en cosas como, que hacer para que un codigo se ejecute mas rapido, como optimizar los contenidos multimedia (imagenes, sonidos, videos, ...) para reducir el tamano final del un .swf —sobretodo si este sera publicado para web—, como mejorar la usabilidad o la simplicidad de una aplicacion, o en caracteristicas propias del diseno como las tipografias, colores, graficos, e-t-c.

La verdad es que pocas veces se piensa en proteger los contenidos en si, para evitar su robo o clonacion, total o parcial. Y esto no es raro de hecho, pues una persona no anda por alli pensando que le robaran su trabajo asi como asi —si ya de por si es dificil comercializar los contenidos originales—.

Pero habra ocasiones en que por cuestiones como la importancia del proyecto, el valor de los contenidos en si, simplemente porque el cliente asi lo pidio, o por la razon de que “yo lo meti alli, y tu no lo vas a sacar”, en si que SI preocupara mantener la integridad original de los desarrollos.

De que casos en cocreto podriamos hablar.
Se me ocurren varios, por ejemplo:
Trabajo desarrollando en un equipo de trabajo una aplicacion importante para una compania grande, donde en tal aplicacion se manipulan ciertas cantidades de informacion medianamente sensibles en conexion con un servidor a travez de internet.
Sì, proteges la conexion.
Sì, proteges el servidor.
Sì, proteges el sistema del lado del servidor.
Pero tambien, por que no proteger el .swf ...

Ahora, otro escenario posible, los juegos en flash.


Hace mucho que dejaron de ser lo que eran, ya no son solo pasatiempos de ninos al otro lado del mundo solo por diversion. Ya hay muchas pequenas empresas desarrolladoras —muchas de ellas independientes y relativamente nuevas—, publishers, y online adversiting networks. Esto, es r-e-a-l.

Igual, es mas importante el para que sirve y que hace tu .swf, que el como funciona o que es lo que contiene. Pero una cosa no oscurece la otra.

En el caso particular de los videojuegos, sobretodo cuando habalmos de companias dedicadas a esto, la mayor parte de los contenidos son originales. Hablamos de mapas de bits de escenarios, de personajes; sonidos de scores, musicas, y efectos especiales. Codigos de programacion sensibles, o estrategicos ya sea por su nivel de madures, utilidad, o eficiencia. Y un largo e-t-c.

Es por eso que a continuacion veran un experimento en el que intentare robar los contenidos parciales, y totales de un videojuego realizado especificamente para esta prueba. Y luego protejere tal videojuego para que no pueda ser robado, o por lo menos descubrir si es que lograr esto sea posible.

Que necesitaremos?


Un juego .swf | en nuestro caso sera “Grand Theft Apple”.
Un decompilador | en nuestro caso sera “Sothink SWF Decompiler”
Un protector/obfuscador/o no se que otro nombre tenga | en nuestro caso sera “Kindisoft's Secure SWF”
Un Pc con su respectivo operador (de Pc).

Estos programas para compilar y decompilar son los que mas han estado haciendo ruido ultimamente, en el caso particular de SecureSWF, es el que se supone a dia de hoy el mas funcional (menos errores, mas opciones, pero tambien algo mas complejo de utilizar) de todos los programas de su genero, segun muchos comentarios alrededor de blogs y foros de discucion en la red. Pero claro ahi otros como “Amayeta's SWF Encrypt”, o “DcomSoft's SWF Protector”.

Cuales son los objetivos de la prueba?


Determinar si es posible protejer un juego parcialmente, esto es, que no se puedan extraer los contenidos del .swf, o que no se pueda crear un .fla funcional a partir del .swf
Determinar si es posible protejer un juego totalmente, esto es, que no ocurra ninguna de las anteriores.

Bien, comenzamos.

Round 1: Flash Vs “Sothink SWF Decompiler”





Si bien los contenidos del .swf si pudieron ser extraidos, este decompilador no fue capaz de generar un .fla completamente funcional, pues el IDE de flash no fue capaz de compilarlo de nuevo. No hay un ganador determinante.

De cualquier forma, “Sothink SWF Decompiler” no es el unico decompliador disponible en el mercado, asi que nuestra prueba busqueda no puede terminar aqui. Es por eso que probaremos a...g

Round 2: Flash Vs “Flash Decompiler Trillix”







Sin duda alguna Trillix fue el vencedor de esta ronda, pues tanto logro extraer los contenidos del .swf, como fue capaz de generar un .fla re-compilable en el IDE de Flash. Ademas de que tal .fla se pudo editar de forma considerablemente normal, e inclusive se fue mas halla, y fue “de-brandeado”, y “re-brandeado” a gusto.

A hora, quien podra defendernos?

Round 3: Flash y “Kindisoft's Secure SWF” Vs “Sothink SWF Decompiler” Vs “Flash Decompiler Trillix”






Como vimos, protejer los desarrollos si es posible. Para quienes esten interesados en este tipo de softwares, ya les comente que hay varios disponibles, busquenlos en google, comparen caracteristicas, precios, reviews y decidan, no se olviden que pueden descargar versiones de prueba para que corroboren su funcionalidad antes que nada.
Personalmente no conosco ningun review decente y en espanol, de este tipo de software, por eso me anime a hacerlo, ojala les juste, y sino vayanse al c@rajo hagan uno ustedes y compartanlo.

Por cpucpu

82 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Mar 2010 01:18 pm

Error escribió:

Movie not Loaded

Por Bleend

Claber

3385 de clabLevel

10 tutoriales
4 articulos

Genero:Masculino   Héroes

Barcelona

firefox
Citar            
MensajeEscrito el 16 Mar 2010 02:09 pm
vi el link de los videos (cortesia de firebug) y sale con esa voz horrible del loqueando o no se como se llame la ironia envazada insustancial esa que es tan popular en youtube.

sobre todo para este tipo de cosas, por favor, usa tu voz.

vamos se que tienes los originales con tu voz real se que puedes XD


^^ felicitaciones por los videos y sigue mejorando ;)

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 16 Mar 2010 04:43 pm
Ya se que la pelicula no se cargo, pero eso es por que el link para poner videos no sirvio, haber si alguien de por aqui lo arregla ya que si estan disponibles.

Por cpucpu

82 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Mar 2010 05:39 pm
es un poco raro el tema, ya que uno puede pensar muchas cosas al respecto.

Dudo mucho que un desarrollador que se respete decopile para ver el código de alguien más...

Entonces ¿quiénes decopilan? pues fácil, gente que recién empieza o siente limitantes para poder desarrollar un módulo o proyecto en especifico.

Antes quizá me preocupaba por este tema, pero ahora en realidad no, ya que sigo estándares, patrones y metodología para el desarrollo de mis proyectos que dudo mucho que esa persona con pocos conocimientos entienda o comprenda que estoy haciendo, mas aún dudo que sepa como obtener lo que realmente está buscando en mi proyecto.

Entonces que cuidar? NADA porque si tu proyecto está bien desarrollado, lo único que podrá encontrar alguien con estas intenciones es cosas visuales, lógicas y demás relacionado con el FRONT-END. Por ende puede que logre obtener lo que busca pero será, y de seguro lo es, insignificante para la seguridad de tu aplicación.

Aun recuerdo que decopilé mi SWF porque ni FLA se perdió :P jeje

Por eldervaz

BOFH

10964 de clabLevel

39 tutoriales
56 articulos

Genero:Masculino  

en algún lugar del mundo

firefox
Citar            
MensajeEscrito el 16 Mar 2010 05:51 pm

eldervaz escribió:



Dudo mucho que un desarrollador que se respete decopile para ver el código de alguien más...


¿Por la acción de abrir el swf o por el hecho de mirar el código? Me parece por el resto de las acciones que lo comentaras por lo segundo.

De todas formas, proteger el código es una práctica absurda. Siempre habrán maneras de encontrar "algo" o de obtener ese algoritmo.

Y ver el código de otros desarrolladores es una práctica muy buena. Yo trato de una vez a la semana meterme a proyectos de terceros en GitHub o similares para aprender nuevas técnicas. Es el origen también de los Code Reviews.

Y sobre abrir un SWF, bueno, depende de las razones de trasfondo. Yo lo he hecho un par de veces pero nunca para copiar y pegar un algoritmo, pero si para curiosear y aprender o tener una idea de cómo hacer algo que había visto. Creo que la última vez que lo hice fue cuando extraje los elementos de un capítulo de Alejo y Valentina para hacer uno propio como regalo de cumpleaños para un amigo que es un fan de la serie (y quedó genial U_U).

Ahora debo huir porque la policía de la copia y los derechos de autor me buscarán.

Por Yaraher

813 de clabLevel

1 tutorial

 

Callao, Perú

chrome
Citar            
MensajeEscrito el 16 Mar 2010 05:57 pm
correcto Yaraher, se entiende que si ves un código de otra persona, aprendes, sea como sea aprendes. Obviamente si este lo autoriza, pero decopilar si es un acto de robo a la propiedad intelectual de la persona que lo hizo. Y si usas "esos" encriptadores, que claro!!!!: existe formas de desencriptar, solo aumentarás más peso a tu SWF, como tu dices, un esfuerzo inútil.

Y a tu cita, si, me refería a mirar el código, no a abrir el swf U_U

Por eldervaz

BOFH

10964 de clabLevel

39 tutoriales
56 articulos

Genero:Masculino  

en algún lugar del mundo

firefox
Citar            
MensajeEscrito el 16 Mar 2010 06:11 pm
¿y existen descompiladores para php?




<--- chiste informático

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 16 Mar 2010 06:30 pm

Inyaka escribió:

¿y existen descompiladores para php?


El mejor es, desde Linux, poner: rm -rf *.php

U_U

Por Yaraher

813 de clabLevel

1 tutorial

 

Callao, Perú

chrome
Citar            
MensajeEscrito el 16 Mar 2010 06:31 pm

Eldervaz escribió:

Dudo mucho que un desarrollador que se respete decopile para ver el código de alguien más...

Precisamente, lo ultimo que necesitaria ser es respetable... aunque pensandolo bien, que no lo hackers son respetables precisamente cuando logran su cometido ¿ ?.

Eldervaz escribió:

Y si usas "esos" encriptadores, que claro!!!!: existe formas de desencriptar, solo aumentarás más peso a tu SWF, como tu dices, un esfuerzo inútil.


Depende de tu proyecto podrias requerir o no obfuscar to codigo, y acerca de desencriptar, no es imposible, pero en la practica (y dependiendo del tipo de proteccion aplicada) no es tan real como crees. Tendrias que desarrolar tus propios metodos y (de la misma forma como no tendiras garantizado el protegerlo) tampoco tendrias resultados garantizados de desprotejerlo. Y en el caso de la seguridad, el buscar una vulvenirabilidad en codigo espagueti es otra historia.

Por cierto, una proteccion no precisamente aumenta el tamano de tus .swf's, al contrario, podria reducirlo. ;)

Por cpucpu

82 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Mar 2010 06:43 pm
errr... sigo opinando lo mismo U_U ser hacker por DESENCRIPTAR un SWF... errr... sin palabras.

¿a reducir el peso encriptando? eso solo tiene una frase: NO OPTIMIZASTE bien tu código, porque si lo hace un encriptador por ti, ya dice mucho, no?

Si tu "código" está bien estructurado, solo debes tener pocos o escasos puntos donde pueden afectar la seguridad de tu aplicación (orientado a datos)

Igual, si quieren encriptarlo, pues adelante, personalmente lo veo como un esfuerzo innecesario.

Por eldervaz

BOFH

10964 de clabLevel

39 tutoriales
56 articulos

Genero:Masculino  

en algún lugar del mundo

firefox
Citar            
MensajeEscrito el 16 Mar 2010 07:32 pm

eldervaz escribió:

errr... sigo opinando lo mismo U_U ser hacker por DESENCRIPTAR un SWF... errr... sin palabras.

¿a reducir el peso encriptando? eso solo tiene una frase: NO OPTIMIZASTE bien tu código, porque si lo hace un encriptador por ti, ya dice mucho, no?

Si tu "código" está bien estructurado, solo debes tener pocos o escasos puntos donde pueden afectar la seguridad de tu aplicación (orientado a datos)

Igual, si quieren encriptarlo, pues adelante, personalmente lo veo como un esfuerzo innecesario.


Estoy de acuerdo, lo mejor es importar peliculas dentro de otras y que a su vez éstas importes otras, y que a su vez éstas últimas importen codigo desde una base de datos sha1 :lol: ....

Por Sisco

BOFH

3700 de clabLevel

12 tutoriales
4 articulos

Genero:Masculino   Bastard Operators From Hell

Catalunya

firefox
Citar            
MensajeEscrito el 16 Mar 2010 08:42 pm

Eldervaz escribió:

Igual, si quieren encriptarlo, pues adelante, personalmente lo veo como un esfuerzo innecesario.

Tienes razon pues esto no es para todos, pero piensa que no todos desarrollaran aplicaciones tan invulnerables como tu tal ves lo hagas, ademas de que claro estos programas no son gratis.

Eldervaz escribió:

errr... sigo opinando lo mismo U_U ser hacker por DESENCRIPTAR un SWF... errr... sin palabras.

No me referia a eso. Se es hacker por penetrar toda la vulnerabilidad de todo un sistema, entiendo al .swf com parte de el, no el.

Eldervaz escribió:

¿a reducir el peso encriptando? eso solo tiene una frase: NO OPTIMIZASTE bien tu código, porque si lo hace un encriptador por ti, ya dice mucho, no?

Yo tengo otra frase: hay optimizaciones que no son viables(ni practicas recomendadas) de hacer por un ser humano, como la siguiente

Código ActionScript :

public static const MAX_STAGE_LIMIT:uint= 1000;
private var wasLastPressed:Boolean = true; 
private var todayThreadCount:uint = 5000; 

public function calculateStageLimits()
{
   if(wasLastPressed){
       trace(MAX_STAGE_LIMIT);
   }
   else if(todayThreadCount > MAX_STAGE_LIMIT)
   {
      trace("wrong value");
   }
}

ycomparalo con esto multiplicado por 100

Código ActionScript :

public static const C1:uint= 1000;
private var w2:Boolean = true; 
private var loc2:uint = 5000; 

public function func99()
{
   if(w2){
       trace(C1);
   }
   else if(loc2 > C1)
   {
      trace("wrong value");
   }
}

Parte de los servicios que ofrecen estos programas de obfuscacion es optimizar (para un maquina) el codigo.
Lo que trato de dar a entender es que si a hay escenarios reales para su uso.

Por cpucpu

82 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Mar 2010 08:45 pm
Por cierto, no hay alguien que pudiera modificar el thread para que se vieran los videos, tarde mucho en hacerlos, y no puedo modificar el thread no viene esa opcion.

Por cpucpu

82 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Mar 2010 10:14 pm

Sisco escribió:

...Estoy de acuerdo, lo mejor es importar peliculas dentro de otras y que a su vez éstas importes otras, y que a su vez éstas últimas importen codigo desde una base de datos sha1 :lol: ....

Esto es lo mejor de este post (Y) créanme U_U sin duda!

Por eldervaz

BOFH

10964 de clabLevel

39 tutoriales
56 articulos

Genero:Masculino  

en algún lugar del mundo

firefox
Citar            
MensajeEscrito el 18 Mar 2010 01:39 am
ó pueden usar herramientas como la que viene en este tut

Web Developer Tutorial: How to Protect SWF files From a Decompiler
http://www.htmlgoodies.com/beyond/webmaster/projects/article.php/3870871

Por janzaldo

0 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Mar 2010 04:36 am
Pues si es cierto, aunque yo pense que ibas a proponer una alternativa al software para logar esto. Dejame lo veo y te cuento.

Por cpucpu

82 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Mar 2010 09:14 am

cpucpu escribió:

Ya se que la pelicula no se cargo, pero eso es por que el link para poner videos no sirvio, haber si alguien de por aqui lo arregla ya que si estan disponibles.
De momento te pude ayudar con eso.

Por M@U

BOFH

6210 de clabLevel

34 tutoriales
5 articulos

Genero:Masculino   Héroes Bastard Operators From Hell Editores

Bate jubilado de Cristalab

chrome
Citar            
MensajeEscrito el 21 Mar 2010 02:37 am
Esta exelente gracias, hojala y ahora si los puedan ver. ;)

Por cpucpu

82 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Mar 2010 08:11 pm
@janzaldo
La verdad es que me llamo mucho la atencion tu comentario, la idea de poder protejer los recursos multimedia me parecio muy interesante la verdad, no crei que fuera posible por las caracteristicas nativas del formato SWF. Sin embargo por esto mismo contacte a los autores del mismo para ver de que se trataba, y la verdad es que no me convencio esta proteccion. Basicamente lo que hace es ocultar los recursos para el decompilador, pero volviendo a los mismo por las caracteristicas nativas del formato SWF la verdad es que se puede crackear facilmente, y a diferencia del codigo, los recursos multimedia no se pueden encriptar como tal.
Y peor aun, creemos que estaran a salvo, pero en realidad en la proxima actualizacion (por decir fecha) de los decompiladores, los recursos estaran disponibles de nuevo, sino es que uno los saca a mano antes.

A por cierto, aqui estan los enlaces para que descarguen los softwares que utilze en la prueba, para que hagna las suyas que siempre es bueno sacar uno sus propias conclusiones:
Sothink SWF Decompiler: http://www.sothink.com/product/flashdecompiler/download.htm
Flash Decompiler Trillix: http://www.flash-decompiler.com/
Kindisoft secureSWF: http://www.kindisoft.com/secureSWF/download.php

Como nota adicional cuando estaba haciendo el juego para esto, hubiera jurado que alguien me lo pediria, parece que tendre que mejorar el factor entretenimiento de los mismos, saludos!.

Por cpucpu

82 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.