La Web del Programador: Comunidad de Programadores
 
    Pregunta:  46481 - PROTEGER UN TXT
Autor:  ALEXANDER LOPEZ
Hola:
Tengo una pregunta sencilla pero demasiado complicada de solucionar, a primera vista no creo que haya solucion pero de todas formas la hare....
Mi aplicacion tiene muchos y my buenos controles antipirateria, entre ellos esta la imposibilidad de modificar el nombre del adquiriente despues de instalarlo, pero por disposiciones legales debe generar archivos txt con informacion referente a ese adquiriente de la licencia y otra informacion de los calculos que se hacen en la aplicacion.
Existe una forma de proteger este archivo para que no sea modificado por ninguna aplicacion diferente a la mia y de esa forma le coloquen el nombre del "adquiriente" que quieran? Sin esto no tendria sentido todos los anteriores controles porque el que quiera puede trabajar pirata y a la hora de generar el txt lo modifica en la parte del adquiriente y LISTO.
AYUDA POR FAVOR GRACIAS

  Respuesta:  Jerry CCS
Una forma sería agregar al final del archivo txt un checksum de la data que contiene este archivo (o coloca ese checksum en el registro de windows), generado por el mismo programa o por el programa de instalación, cada vez que inicies la aplicación, lees el archivo txt, corroboras que el checksum sea el adecuado, generandolo nuevamente y comparandolo, además puedes incluir el numero de serie del disco duro, la versión del sistema operativo y algunas otras variables en ese checksum para hacerlo mas dificil de "generar". Si los checksum no coinciden, voìla, la aplicación se cierra, pero no lo hagas en la entrada, deja que el usuario trabaje algunos segundos ("n" segundos de manera aleatoria) y para que no parezca un "sistema de seguridad" en vez de cerrar la aplicación, genera una ventana de error (raise error) con un numero escogido por ti, así en caso de que surja alguna consulta tecnica, ya sabrás por donde vienen los tiros... a veces resulta mejor esperar algún tipo de operación del usuario, para iniciar la verificación, porque aparte de hacerlo "mas aleatorio", es mas dificil de localizar para crackearlo, mejor aun es hacerlo en varias partes del programa, siempre con rutinas de chequeo diferentes, no tiene sentido ejecutarlo en varias partes del programa si siempre llamas al mismo procedimiento de chequeo. Espero que sea de utilidad... suerte

  Respuesta:  Erwin Perez
Permiteme preguntarte: Necesitas que alguien ajeno a ti tenga acceso de modo controlado al archivo de texto?
Porque podrias encriptarlo para evitar que lo alteren, otra opcion es que le agreges al final del archivo una firma digital para que quien deba accesarlo de pueda constatar que no se ha modificado, creo que esto no soluciona es acceso al archivo, pero si previene que lo pasen por bueno, ademas podrias almacenar en un sitio "seguro" los datos y checar periodicamente la coherencia del archivo txt para regenerarlo si ha sido alterado, ten en cuenta que en este mundo nada es infalible ni impenetrable, pero si lo puedes hacer mas dificil. Es una sugerencia, espero te sirva.