Proteccion de un programa

0x666

Hola

Necesito hacer un programa con una proteccion, es decir que a partir de las 15 ejecuciones deje de funcionar.
Escribir en registro o en el disco duro de windows es algo simple, ya que con cualquier monitor de sistema es facil descubrir que ha creado nuevo.
Como el exe esta en uso no se puede escribir a si mismo y con las dlls pasa lo mismo.

Alguien tiene o sabe como proteger un programa?

Gracias

mindo

has creado 1 programa y lo vas a vender :)
pero vas a sakar version trial con posibilidad de 15 ejecuciones ?

puede que un amigo lo sepa aver si aparece en msn :)

javithelong

Puedes meter un archivo en c:\windows\system con un nombre raro, con el numero de ejecuciones. Ponlo con extension rara y tal, y solo lo sabrá tu programa. Vas viendo ahi cuantas ejecuciones llevas

No se, se me acaba de ocurrir

BEDI

A mi tambien me interea para un progrmaa que he creado. A ver is alguien sabe algo efectivo

cabron

Um no sé que algoritmos suelen utilizarse para estas cosas, pero puestos inventarse uno... Puedes escribir el código para que modifique los datos binarios de una dll que el programa use antes de cargarla, y que la modificación marque la fecha del sistema en el primer día de uso.

Luego después de cargar la dll, compruebas la fecha con la de hoy.

Los fallos de este método, es que si el tío cambia cada día la fecha del PC para que no avance, el programa no caduca nunca, o que con un editor hexadecimal pueden cambiar los datos de la dll a la fecha actual, y por so puesto da por hecho que como algún Über cracker tenga interés por tu programa, lo desensamblará, y eliminará esa rutina del código.

0x666

Esos metodos ya los he mirado con un File Monitor salen, busco algo mas complejo.

A

Puedes tener algo así:

lanzador.exe
Es lo que el usuario debe ejecutar. Al ser lanzado modifica X bytes en miprograma.exe, que vienen a ser un contador de veces que el programa ha sido ejecutado.

miprograma.exe
No se deja ejecutar directamente, sólo a través de lanzador.exe. Al ser lanzado mira el número de veces que ha sido ejecutado y si son más de quince, devuelve un mensaje con "El tiempo de prueba ha finalizado."

Pregunta aparte:
¿ Porqué no una clave de registro ?

smintcs

tambien podrias hacer una clave de registro pero que sea necesaria para el programa, vamos que sin eso no funcione, y en esa misma pones el contador

d3l4g0r

http://www.softwarekey.com/swk_products/trial_creator/

pone limitación de 30 días

maRc

Yo haría algo parecido a lo que dice cabrón, por dos motivos:

1- Es suficiente para hacer que paguen los usuarios que suelen pagar por los programas.
2- Si se hace lo suficientemente famoso, da igual el método que hayas usado, te lo crackearán igualmente.

Además, me parece que cualquier cambio que hagas va a poder monitorearse, así que como no optes por un método mágico (por ejemplo un rootkit), lo vas a tener chungo.

También puedes usar algún método de protección comercial.

0x666

Usar rootkits es algo ilegal, al igual que inyeccion de DLL para controlar el estado del programa.

Usar armadillo, ASPack, ASProtect, te da igual por que hay dies. Lo mejor es crearte una proteccion a mano, empaquetarlo y hacer una recompilacion del PE. y .pdata

Pero bueno, estoy investigando :D

LOc0

Por 1€ el programa, diga programas (Win32) incrackeables como... 1, 2, 3 responda otra vez.

Salu2 ;)

cabron

#6:

Como ya te han dicho, no existe ningún método que no se pueda crackear, hagas lo que hagas, te lo van a reventar como tu programa generé un mínimo de interés, así que no te merece la pena complicarte la vida buscando un método hipercomplicado.

Con que hagas algo que el usuario normal no pueda sobrepasar, ya es suficiente.

maRc

#11, modificar tus propias dll, que es lo que se ha comentado, no creo que sea ilegal.

Usuarios habituales

  • maRc
  • cabron
  • 0x666
  • d3l4g0r
  • smintcs
  • BEDI
  • javithelong