Foros del Web » Programando para Internet » Python »

Proteger contra copias un ejecutable usando os.path.exists

Estas en el tema de Proteger contra copias un ejecutable usando os.path.exists en el foro de Python en Foros del Web. Es válido o sea da resultado usar la función import os.path os.path.exists(file_path) para "proteger" un programa contra copias? Por ejemplo en nuestra aplicación principal ponemos ...
  #1 (permalink)  
Antiguo 06/12/2012, 15:13
 
Fecha de Ingreso: noviembre-2012
Mensajes: 111
Antigüedad: 11 años, 6 meses
Puntos: 6
Proteger contra copias un ejecutable usando os.path.exists

Es válido o sea da resultado usar la función

import os.path
os.path.exists(file_path)

para "proteger" un programa contra copias?


Por ejemplo en nuestra aplicación principal ponemos

import os.path
os.path.exists("c:\windows\miarchivo.dll")

donde "miarchivo.dll" es cualquier cosa, por supuesto con otro nombre más disimulado como windriv.dll y puede ser un simple texto guardado con el Bloc de Notas.

Si el archivo existe el programa funciona, si no existe que salga un aviso de copia ilegal o algo así.

y en el momento de instalar el programa hacemos la instalación normal del paquete o de la carpeta del portable y copiamos manualmente el archivo "miarchivo.dll" en c:\windows

Puede dar resultado o es muy fácil que pellizquen el truco escrutando el archivo.exe ??
  #2 (permalink)  
Antiguo 06/12/2012, 15:35
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Proteger contra copias un ejecutable usando os.path.exists

Es una protección muy simple, claro que es mejor que si no tuviera nada.

Tal vez este tema te de un panorama mas amplio de lo que tratas de hacer.

Pero la respuesta es recurrente. No vas a poder nunca evitar que salten tu protección.
  #3 (permalink)  
Antiguo 06/12/2012, 18:56
 
Fecha de Ingreso: noviembre-2012
Mensajes: 111
Antigüedad: 11 años, 6 meses
Puntos: 6
Respuesta: Proteger contra copias un ejecutable usando os.path.exists

Cita:
Iniciado por razpeitia Ver Mensaje
Es una protección muy simple, claro que es mejor que si no tuviera nada.

Tal vez [URL="http://stackoverflow.com/questions/261638/how-do-i-protect-python-code"]este tema[/URL] te de un panorama mas amplio de lo que tratas de hacer.

Pero la respuesta es recurrente. No vas a poder nunca evitar que salten tu protección.
Gracias por responder.

Si, se que es una protección muy simple pero con que frene a usuarios medios me alcanza. O sea, que no venga alguien y copie y pegue la carpeta y la multiplique por todos lados.

Gracias por el enlace.

Por lo que veo muchos de los Pythofans no están de acuerdo con proteger el software y dicen que hay que apuntar a los servicios, pero ese ideal no siempre es aplicable.

Si haces un pequeño programa que pide 5 o 6 datos numéricos de entrada y te muestra el resultado de varios cálculos a la persona que lo recibe le sirve, pero... qué servicio posterior puede precisar?

En esos casos me parece lógico proteger el programa y cobrar un precio bajo pero cobrar.
  #4 (permalink)  
Antiguo 07/12/2012, 05:53
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Proteger contra copias un ejecutable usando os.path.exists

No se trata de no cobrar o no proteger, se trata de que es demasiado fácil saltarse la protección y muchas veces no vale la pena perder el tiempo. No es filosofía, es ser práctico.

Si es windows, quizás escribir en el proceso de "instalación" alguna clave en algún lugar oscuro y comprobarla en cada ejecución quizás baste.
  #5 (permalink)  
Antiguo 07/12/2012, 06:06
 
Fecha de Ingreso: noviembre-2012
Mensajes: 111
Antigüedad: 11 años, 6 meses
Puntos: 6
Respuesta: Proteger contra copias un ejecutable usando os.path.exists

Cita:
Iniciado por AlvaroG Ver Mensaje
No se trata de no cobrar o no proteger, se trata de que es demasiado fácil saltarse la protección y muchas veces no vale la pena perder el tiempo. No es filosofía, es ser práctico.

Si es windows, quizás escribir en el proceso de "instalación" alguna clave en algún lugar oscuro y comprobarla en cada ejecución quizás baste.
Hola Alvaro, entiendo pero agregar una par de líneas de código no insume mucho tiempo y puede desalentar la simple copia y distribución.

Es en Windows si.

Respecto a tu propuesta es una de las que estoy valorando.

Mis opciones

1) Comprobar si existe un fichero en determinado lugar (Obviamente para que eso funcione yo debo instalar personalmente o a distancia el programa y copiar el archivo "escondido".

2) Leer el serial del disco duro y empaquetar ese serial dentro del ejecutable. (Para cada copia que yo distribuyo debo compilar de nuevo una versión del programa)
Luego al arrancar el programa vuelve a leer el serial del disco duro y lo compara con el que le dejo seteado, si son iguales funciona, si son diferentes avisa que hay un problema con la instalación

3) Crear un algoritmo dentro del programa, por ejemplo tomando la fecha y hora (solo la hora, no los minutos) y que de ahí muestre en pantalla un número. Con ese número a la vista la persona me dice que número tiene y yo le paso la clave de activación. El problema de este caso es que evidentemente en algún lado el programa debe guardar el dato de que está validado y si pellizcan cual es el archivo lo copian con la carpeta y lo pueden duplicar de nuevo...


La opción 2 la he usado con Visual Basic y me ha funcionado bien, pero tengo que aclarar bien cuando vendo el programa que es una versión "personalizada" para esa computadora, porque si cambian de equipo me tienen que volver a pedir que les instale el programa. En esos casos lo hago sin costo (siempre y cuando no "cambien de computadora" todos los meses je je je...

Digo que debo aclarar que es una versión "personalizada" porque justamente no les entrego un instalador que funcione en cualquier otra computadora...

En definitiva no se trata de embromar a nadie, pero si de proteger un poco tu trabajo, vender el programa a un precio sumamente accesible que no justifique andar perdiendo tiempo desbloqueándolo pero que al mismo tiempo tenga cierta protección para que eventualmente alguien con un poco más de conocimiento no lo pueda copiar y salir a venderlo como si fuera suyo.

¿Qué opinan?
  #6 (permalink)  
Antiguo 07/12/2012, 08:08
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Proteger contra copias un ejecutable usando os.path.exists

Opino que queda absolutamente a tu criterio, haz lo que consideres mejor.
La verdad pienso que no idealmente no debería ser necesario preocuparse por eso, pero al mismo tiempo conozco cómo funciona la mayoría de la gente que tiene o trabaja en empresas pequeñas.

Desde el punto de vista técnico, el programa es siempre crackeable, por lo que "¿cómo proteger código?" tendrá siempre la misma respuesta: depende de quién intente copiarlo.
  #7 (permalink)  
Antiguo 08/12/2012, 17:27
 
Fecha de Ingreso: noviembre-2012
Mensajes: 111
Antigüedad: 11 años, 6 meses
Puntos: 6
Respuesta: Proteger contra copias un ejecutable usando os.path.exists

Cita:
Iniciado por AlvaroG Ver Mensaje
Opino que queda absolutamente a tu criterio, haz lo que consideres mejor.
La verdad pienso que no idealmente no debería ser necesario preocuparse por eso, pero al mismo tiempo conozco cómo funciona la mayoría de la gente que tiene o trabaja en empresas pequeñas.

Desde el punto de vista técnico, el programa es siempre crackeable, por lo que "¿cómo proteger código?" tendrá siempre la misma respuesta: depende de quién intente copiarlo.
Gracias Alvaro.

Supongo que vendiendo el programa a un precio muy básico y poniendo una protección elemental está bien para mi caso.

Etiquetas: contra, copias, ejecutable, import, programa, proteger, usando
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:28.