En mi lista de códigos definitivos del infierno, esos scripts tan bonitos que usas en casos "extremos" (eh, que he dicho extremos), me encontré uno que si bien es muy débil y puede ser mejorado, ayuda con esos clientes que usan las "demos" como el producto terminado o lo usan un tanto abusivamente
Les presento el SWF que expira en 30 días
Abrimos la película que queremos "proteger"; y en el primer keyframe colocamos el siguiente código (Nada más):
Código :
var fin:SharedObject = SharedObject.getLocal("l0ser", "/"); //Quitale el comentario a la siguiente linea, para resetear la fecha; //pero no olvides volverlo a poner despues //fin.clear(); var limite:Date; if (fin.data.fecha == undefined) { fin.data.fecha = new Date(); } else { limite = new Date(fin.data.fecha.getFullYear(), fin.data.fecha.getMonth(), fin.data.fecha.getDate()+30, 0, 0, 0, 0); if (new Date()>limite) { setInterval(bastardAttack, 1); } } function bastardAttack () { trace("LUSER"+random(1337)); Stage.showMenu=false; fscommand("quit"); stop(); _root.createEmptyMovieClip("f00ker",1337); with(_root.f00ker){ beginFill(random(16777215), 100); moveTo(0,0); lineTo(0,Stage.height); lineTo(Stage.width,Stage.height); lineTo(Stage.width,0); lineTo(0,0); endFill(); } }
A partir de que se ejecute por primera vez, el SWF verificara si no han pasado 30 días ... y si ya pasaron; no lo deja abrir (Mucho ojo a la función bastardAttack. Si aun así el usuario es hábil y lo abre por otros medios (Browser); no lo deja ver
Es un código muy simple que podría haber alojado en una clase, pero para que nos vamos a engañar, no se me antojo ; además si lo hiciera dejaría de ser "Script From the Hell"
Si tienes "sk1llz"de programador; podrás ver que es muy fácil, teniendo el FLA, resetear la "fecha limite" en caso de problemas al probar el SWF, así como también puede cambiarse, moviendo un numero, el limite de días antes de dejar de abrir.
Claro, no es seguro, el usuario cambia la fecha de su PC y ya funciona, pero por lo menos TIENE que cambiar la fecha y el "luser promedio" de los que queremos proteger este tema NO tiende a cambiar cosas en su configuración.
Pues nada, entrego y libero el código con la famosa licencia libre "Haz lo que quieras, pero no me vengas a pedir ayuda" y ya me contaran si lo han mejorado o reforzado, hay muchas cosas que pueden "endurecer" la seguridad del script.
Esto es parte de la campaña, "Un cliente menos en tu pool de lusers", en la que animamos a los developers y designers a tomar el control... porque son ustedes y no el los que saben de que va la cosa
Por el imperio! (Y como me llenen de mensajes el blog con solo "por el imperio" sin añadir nada mas, sentirán la suave caricia de "El Bate(TM)")
[cite] (Y como me llenen de mensajes el blog con solo "por el imperio" sin añadir nada mas, sentirán la suave caricia de "El Bate(TM)")[/cite] Por el imperio!!!!! Por:Darkintosh_blog
Muy bien Freddie®! Así se hace!
Sería un bonito proyecto ver cómo alguien lo "endurece" y lo regresa a la comunidad. Por:Pedro
Pues sí Kada(zuro?), efectivamente si borra el sharedobject tendrá 30 días más, pero un cliente medio no sabrá como hacerlo jeje.
Yo usé uno parecido ena aplicación que hice, y en el shared object guardaba la fecha de la primera vez y la fecha del ultimo acceso. Si la fecha actual era menor que la del ultimo acceso tampoco lo dejaba ejecutar, pues eso significaba que había cambiado la fecha del computador.
pedro, no necesitas el fla para romperlo. Lo que se pretende es protejer el swf. Para romper el sistema de seguridad que implemento F, bastaría con borrar un archivo de extensión *.sol.
Pero como dice elecash, eso un cliente "normal" no lo sabe.
Freddie muy bueno ! una pregunta para reforzar el tema de la fecha y controlarla mas , se me ocurre que se podria hacer que tome la fecha del servidor mediante php, o bien se puede colgar un web services publico que nos devuelva la hora .. y usarlo de esa forma par aque el cilente no pueda cambiar la fecha bueno se me ocurre algo por el estilo de todas formas esta exlente el codigo !
saludos
dQ Por:dQ_blog
dQ, entonces el luser_victima tendria que estar conectado a Internet; eso seria un problema y una situación NO comun, por lo que se hace inefectivo Por:Freddie
si le damos las dos opciones podria servir, al menos intentarlo con los dos metodos. Por:jhony192
la propuesta de Caravi parece interesante tambien, podría hacerse una combinación de ambas, es decir, que pruebe a conectar al webservice y sincronizarla cn la local de forma interna. si no tiene conexion que utilice la hora local unicamente. Además en caso de web, utilizar un archivo externo para ese código y así complicar más la cosa... Buen trabajo. Por:Johnny
Muy bien, no soy la experta en la materia pero tomarè nota y seguirè aprendiendo de cada uno de los participantes de CLAB Por:manoella
Buen script F.
Pero tenemos que ver la forma de que el código no sea tan facil de hayar en caso de que nuestro cliente se las tire de muy zorro y le diga al sobrino que está estudiando sistemas que use el SWF Decompiler y borre el primer KeyFrame y deja toda nuestra ardua labor de seguridad hecha una m!34d@.
despues de un ataque epileptico entendi la función "bastardAttack"...
buenisimo.... Por:nez_blog
Freddie® :
daly_blog :
a mi me gustaria saber como generar un codigo sea fla u otro programa para evitar la quemada del cd,
A mi tambien
PD: Ni siquiera la industria disquera lo ha logrado Por:Maikel
Hola. Tengo una duda. ¿Cuándo en el código aparece: //Quitale el comentario a la siguiente linea, para resetear la fecha; //pero no olvides volverlo a poner despues //fin.clear(); , esto que significa?
Muchas gracias!!! Por:Carter_blog
Pues que para probarlo quites la linea, pero a la hora de darselo al cliente la pongas comentada.
Claro, ponle 1 para que lo pruebes y veas su funcionamiento.
Ahora que pensandolo bien, podrías ponerle -1, igual te dá el resultado más rapido, no? Por:La100rra
Okeys!!! Muchas gracias por vuestra ayuda.
Sois el liquido que producen las vacas por las ubres!!! LA LEEECHEE!!! Por:Carter_blog
alguien me podria explicar esta linea,
limite = new Date(fin.data.fecha.getFullYear(), fin.data.fecha.getMonth(), fin.data.fecha.getDate()+30, 0, 0, 0, 0);
se que es para la fecha de vencimiento pero no se como funciona totalmente aprte de los metodos de getFullYear y los otros dos no se como se agregan los 30 dias, se que son sumandole 30 como esta en la linea pero no se porque se ponen donde estan ni la razon de los demas ceros Por:Marmota-foo
Los demas ceros son hora, minuto, segundo y milisegundo, que no importan porque lo que nos interesa es el dia
La suma hace que el mismo objeto Date internamente maneje todo el tema de los calculos de fecha, librandonos de problemas. Por:Freddie
gracias, ahora todo claro : ) Por:Marmota-foo
fenomenal este codigo, no cabe duda que los mejores programadores de flash tambien son LATINOS Por:ASCII_J2A_blog
Un saludo de un ignorante y neófito en Flash. ESTE ES EL LUGAR PRECISO que yo necesito: Un foro de expertos derramando información que si no entiendo, la explican y la entiendo, y si no la entiendo, la uso y funciona como si la hubiera entendido.. Por:Neoflash_blog
Neoflash_blog :
Un saludo de un ignorante y neófito en Flash. ESTE ES EL LUGAR PRECISO que yo necesito: Un foro de expertos derramando información que si no entiendo, la explican y la entiendo, y si no la entiendo, la uso y funciona como si la hubiera entendido..
les escribe el mas lento de sus aprendizes para decirles que ami no me seirve el codigo, ya le probe le quite y le puse y nada.... tengo la leve sospecha pero no creo... sera por que uso win98???? por favor ayudenme, selecciono, copio y pego tal cual esta el codigo en el primer fotograma, tal cual, y lo que hago es adelantar el relog de la maquina dos meses con eso vasta para la fecha, por favor ayudenme y disculpen mis trivialidades MAESTROS!!!!! Por:ASCII_J2A_blog_blog
Por favor, dirige tus preguntas mejor al foro, ASCII_cosa_cosa
En realidad si se pueden hacer cds a prueba de copia, es solo que no es nada presentable.. Por:milano_blog
milano_blog :
En realidad si se pueden hacer cds a prueba de copia, es solo que no es nada presentable..
Claro que se puede mil ano, puede ponerle un rootkit como los de sony MWHAHAHAHHAHAH PD, Sony 4p35t4 Por:ramiro_olver@
en realidad es un efect mecanico del disco... aquien no le ha fallado un disco alguna vez?. Es simple solo le provocas un daño menor el cual permita la lectura de datos mas no la copia de los mismos...
Por:milano_blog
Me gustaria saber como generarian el vencimiento a partir de la fecha del servidor... Por:cheche_mex_blog
Se puede hacer que el swf DESDE UN CD (con autorun por example) pueda reconocer la hora del sistema? cosa que si abre en junio y el swf tenga fecha (x example: 10 de junio) y yo tengo 30 dias de usarlo, entonces cae el 11 de julio y el usuario ya estaria sin permiso, con el codigo señalado arriba el CD estaria "VENCIDO", por ende el swf reconoce eso y aplica el codigo de arriba. asi copie el swf este reconociendo la hora IGUAL ESATRIA VENCIDO? no? esto es aplicable incluso con un php o con txt encriptados, para evitar modificaciones, cierto?? funcionaria?? Por:666satan
Yo tambien sou un cliente normal.. como hago para tener otros 30 dias sin el fla? Por:chico_depeche
Elecash :
Pues que para probarlo quites la linea, pero a la hora de darselo al cliente la pongas comentada. --- { Llegué aquí a través de Google }
Deu!!
Por:EdilbertoO
Pues a mi no me funciona. La fecha que tiene mi PC es: Martes, 25 de julio de 2006.
Y en el flash los valores de fecha que me da, según el panel de salida, son:
Oh miren que buena idea se me ocurrio, XDXDXDXD, se podría hacer que te salga un cartelito del centro de control de la taskbar del winXP, diciendote de que tu SWF ya esta caduco XP Por:Damiancito_blog
Y que tal si mejor solo validas que el _root.url sea unico, asi no lo podran ver de otro lugar que no sea tu sitio. Por:seyacat_blog
Mi tonto....what a code? Por:HACKDEAR_blog
es mas por que tanto evitar que se abra y se ejecuta el swf? por que no poner alguna linea que directamente haga que se auto elimine de PC? PBL Por:pbl
pbl :
es mas por que tanto evitar que se abra y se ejecuta el swf? por que no poner alguna linea que directamente haga que se auto elimine de PC?
Porque es "linea" no existe en Actionscript y directamente no tendría sentido en un exe ejecutandose y tratandose de eliminar a si mismo (aunque hay tecnicas) Por:Freddie
Estimados como prodria hacer para dar una fecha especifica de termino por ejemplo decirle que el 25 de diciembre es el tope.
saludos Por:ZOrba_blog
ZOrba_blog :
Estimados como prodria hacer para dar una fecha especifica de termino por ejemplo decirle que el 25 de diciembre es el tope.
Esta puede ser una buena sugerencia para los usuarios que cambiarían la fecha.
También se podría hacer, adicional que funcione si la fecha esta en determinada fecha del calendario, es decir que si el usuario modifica la fecha un mes antes, entonces el no se active. o algo así Por:esutoraiki_blog
una preguntilla.. para probarlo solo saco el comentario de la linea: //Quitale el comentario a la siguiente linea, para resetear la fecha; //pero no olvides volverlo a poner despues fin.clear(); y cambio el valor de 30, verdad??? solo eso?? el dia que se lo entrgue al cliete pongo la fecha que quiero y agrego las lineas..... verdad?????? Por:rowinda_blog
WEno la veda el code es bureno pero estoy interresado en algo mas hm... comom digo util algo k no deje decompilar el swf o si lo ase k no lo aga tal cual ahy tal cosa? Por:DavilaCS
DavilaCS :
WEno la veda el code es bureno pero estoy interresado en algo mas hm... comom digo util algo k no deje decompilar el swf o si lo ase k no lo aga tal cual ahy tal cosa?
la verdad si lo hablo pero no lo escribo bueno es todo caso hay lo tradusco queria saber si hay una manera de proteger mi aminacion para que cuando lo desencripten no salga tal cual (e deseccritado aveces y cuando lo reproducia no funcionada bien ose movia o botaba falllos en los scripts) entienden Por:DavilaCS
DavilaCS :
entienden
No
En serio, no es por joderte ni nada, pero ¿Cómo haces para comunicarte con la gente en la vida diaria? ¿En serio existen otras personas que entienden las ideas que quieres hacerles entender?
Los demas ceros son hora, minuto, segundo y milisegundo, que no importan porque lo que nos interesa es el dia
La suma hace que el mismo objeto Date internamente maneje todo el tema de los calculos de fecha, librandonos de problemas.
¿Por qué solo nos interesa el día? No sería igual si sumaramos por ejemplo ' 5' en el argumento de los minutos, para que así caducara a los 5 minutos? Por:Zagahlo_blog
como puedo hacer para que mediante el codigo se reconozca la fecha de la primera ejecucion del swf? Esto para que esa fecha sea la de inicio del contador de 30 dias y asi el esfuerzo del usuario en cambiar la fecha de la pc sea en vano Por:Carlos_blog
HOla a todos, que buen script, ultimamente me he dedica a realizar presentaciones y aplicaciones leves para universitarios, y jajajajaja, ya encontre una forma de asegurar que paguen, jajajajaja, muy buen codigo,. Espero que alguno de mis clientes no lean este tema, para que no quiten la seguridad jejeje.