Foros del Web » Programación para mayores de 30 ;) » .NET »

Modos de proteger mi app (Licencias)

Estas en el tema de Modos de proteger mi app (Licencias) en el foro de .NET en Foros del Web. Pues tengo una app hecha en C# que me gustaría distribuirla con distintas licencias, segun las capacidades del programa, es una aplicación de gestión de ...
  #1 (permalink)  
Antiguo 15/03/2011, 15:13
 
Fecha de Ingreso: diciembre-2007
Mensajes: 124
Antigüedad: 16 años, 11 meses
Puntos: 2
Modos de proteger mi app (Licencias)

Pues tengo una app hecha en C# que me gustaría distribuirla con distintas licencias, segun las capacidades del programa, es una aplicación de gestión de alojamientos rurales. Quiero que si se va a gestionar una sola casa sea gratis, si es de 2 a 4 un precio, de 4 a 8 otro, y de 8 en adelante otro.

¿Que opciones tengo para proteger la aplicación?
  #2 (permalink)  
Antiguo 16/03/2011, 04:32
 
Fecha de Ingreso: abril-2007
Mensajes: 163
Antigüedad: 17 años, 7 meses
Puntos: 2
Respuesta: Modos de proteger mi app (Licencias)

Yo las aplicaciones .net de escritorio las protejo generando un nº de licencia dependiente del nº de serie del disco duro, a cada nº de licencia le corresponde una contraclave para activarla. Si intentas copiar/pegar el programa en otro PC no funciona ya que compruebo que el nº de licencia no es del PC en el que se ha instalado, por ejemplo porque los 3 primeros numeros del numero de licencia no corresponden con el numero de serie del disco duro.
__________________
http://literaturaprogramada.blogspot.com.es/
literaturapogramada.blogspot - Reflexiones mundanas sobre la programación
  #3 (permalink)  
Antiguo 16/03/2011, 10:10
 
Fecha de Ingreso: diciembre-2007
Mensajes: 124
Antigüedad: 16 años, 11 meses
Puntos: 2
Respuesta: Modos de proteger mi app (Licencias)

Cita:
Iniciado por meula Ver Mensaje
Yo las aplicaciones .net de escritorio las protejo generando un nº de licencia dependiente del nº de serie del disco duro, a cada nº de licencia le corresponde una contraclave para activarla. Si intentas copiar/pegar el programa en otro PC no funciona ya que compruebo que el nº de licencia no es del PC en el que se ha instalado, por ejemplo porque los 3 primeros numeros del numero de licencia no corresponden con el numero de serie del disco duro.
Me parece muy interesante tu método.

Imagino que tienes una aplicación en la que a partir del nº de serie del disco duro te genera una clave de licencia válida según unos cálculos que realizas... luego el cliente introduce esa clave y si corresponden los cálculos la licencia se valida.

¿Guardas la clave de licencia en BD y cada vez que se ejecuta el programa la comprueba?

¿Sabes donde puedo encontrar información para realizar ese sistema?
  #4 (permalink)  
Antiguo 16/03/2011, 10:31
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 14 años, 4 meses
Puntos: 267
Respuesta: Modos de proteger mi app (Licencias)

tal vez te pueda ser util :

http://www.codeproject.com/KB/install/VB_KeyCode.aspx
http://www.sg-inware.com/store/sginw...SGLicenser.asp
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #5 (permalink)  
Antiguo 16/03/2011, 10:42
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 14 años, 4 meses
Puntos: 267
Respuesta: Modos de proteger mi app (Licencias)

por ahi un poco de info respecto a lo de los discos :

http://social.msdn.microsoft.com/For...d-329d42d7f620
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #6 (permalink)  
Antiguo 16/03/2011, 11:12
Avatar de TECKNOCK  
Fecha de Ingreso: agosto-2010
Mensajes: 80
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Modos de proteger mi app (Licencias)

Hice la misma pregunta hace un tiempo, aqui están las respuestas.

http://www.forosdelweb.com/f29/segur...iratas-891661/


Algo muy importante que descubrí es el tema de la OFUSCACIÓN del código, ya que hay programas como el REFLECTOR que pueden obtener todo tu código fuente a partir de tu "archivo.exe". Este programa es tan potente que incluso luego de decifrar un "archivo.exe" te da la opción de ver el código en VB, C#, C++, Delphi, etc...

Pero "ofuscando" mi código con programas como DotFuscator y EazFuscator logré confundir a Reflector.
  #7 (permalink)  
Antiguo 16/03/2011, 11:45
 
Fecha de Ingreso: diciembre-2007
Mensajes: 124
Antigüedad: 16 años, 11 meses
Puntos: 2
Respuesta: Modos de proteger mi app (Licencias)

Muchas gracias a todos por las respuestas.

El método que más me convence es el de obtener el nº de serie del disco duro, pero con una puntualización. Con este sistema, el usuario podría instalar la app en varios directorios del mismo disco con la misma licencia ¿No?

Lo digo porque mi app gestiona alojamientos, y según los alojamientos a gestionar tendrá un precio u otro, siendo gratis si es para un solo alojamiento. Por lo tanto, si el usuario tiene 3 alojamientos, instala la app en 3 directorios distintos con la misma licencia, y con eso le valdría.

¿Es posible obtener otro dato del hardware, como el nº de serie de la placa base o el procesador?
  #8 (permalink)  
Antiguo 16/03/2011, 11:53
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 14 años, 4 meses
Puntos: 267
Respuesta: Modos de proteger mi app (Licencias)

claro que se puede instalar en varios directorios xq la licencia pertenece a un ordenador( lo cual tiene el mismo serial del hardware) y si es posible obtener otros datos del hardware.. solo es cuestion de buscar en google... Pero tengo que centrar un punto con respecto generar las licencias en base a un componente de hardware... ¿que pasaria si cambian de discos por algun motivo X en el ordenador? Logicamente la lincencia no valdria, alli tendrias que tener cuidado... y avisar a tu cliente.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #9 (permalink)  
Antiguo 17/03/2011, 00:50
 
Fecha de Ingreso: diciembre-2007
Mensajes: 124
Antigüedad: 16 años, 11 meses
Puntos: 2
Respuesta: Modos de proteger mi app (Licencias)

Cita:
Iniciado por Aquaventus Ver Mensaje
claro que se puede instalar en varios directorios xq la licencia pertenece a un ordenador( lo cual tiene el mismo serial del hardware) y si es posible obtener otros datos del hardware.. solo es cuestion de buscar en google... Pero tengo que centrar un punto con respecto generar las licencias en base a un componente de hardware... ¿que pasaria si cambian de discos por algun motivo X en el ordenador? Logicamente la lincencia no valdria, alli tendrias que tener cuidado... y avisar a tu cliente.

Sí Aquaventus, ya había pensado en eso, por eso comentaba lo de obtener el serial de la placa base, que es menos probable que se cambie. Con esta clase se podría obtener el DeviceID de la placa base, y a partir de ahí generar la clave de licencia.

Esa es la idea, ya que la placa base será muy raro que la cambie, y si la cambia se puede decir que "es otro pc". Pero con respecto a instalar la aplicación en varios directorios... ¿Como podría controlar eso?

Saludos y gracias de nuevo!!
  #10 (permalink)  
Antiguo 19/03/2011, 03:15
 
Fecha de Ingreso: diciembre-2007
Mensajes: 124
Antigüedad: 16 años, 11 meses
Puntos: 2
Respuesta: Modos de proteger mi app (Licencias)

¿Nadie ha hecho eso antes?
  #11 (permalink)  
Antiguo 19/03/2011, 08:49
Avatar de bieres  
Fecha de Ingreso: marzo-2011
Mensajes: 63
Antigüedad: 13 años, 8 meses
Puntos: 5
Respuesta: Modos de proteger mi app (Licencias)

Hola JuaNiNNaio
Código:
Imports System.Management

Friend Shared Function LeePlaca() As Object
        Dim salida(2) As String
        Try
            Dim mos As New ManagementObjectSearcher("root\CIMV2", "SELECT * FROM Win32_BaseBoard")
            For Each mo As ManagementObject In mos.Get()
                Try
                    salida(0) = mo.GetPropertyValue("SerialNumber").ToString
                    salida(1) = mo.GetPropertyValue("Manufacturer").ToString()
                    salida(2) = mo.GetPropertyValue("Product").ToString()
                Catch
                End Try
            Next
            Return salida
        Catch ex As Exception
            Return Nothing
        End Try
    End Function
  #12 (permalink)  
Antiguo 19/03/2011, 13:55
 
Fecha de Ingreso: diciembre-2007
Mensajes: 124
Antigüedad: 16 años, 11 meses
Puntos: 2
Respuesta: Modos de proteger mi app (Licencias)

Cita:
Iniciado por bieres Ver Mensaje
Hola JuaNiNNaio
Código:
Imports System.Management

Friend Shared Function LeePlaca() As Object
        Dim salida(2) As String
        Try
            Dim mos As New ManagementObjectSearcher("root\CIMV2", "SELECT * FROM Win32_BaseBoard")
            For Each mo As ManagementObject In mos.Get()
                Try
                    salida(0) = mo.GetPropertyValue("SerialNumber").ToString
                    salida(1) = mo.GetPropertyValue("Manufacturer").ToString()
                    salida(2) = mo.GetPropertyValue("Product").ToString()
                Catch
                End Try
            Next
            Return salida
        Catch ex As Exception
            Return Nothing
        End Try
    End Function
Hola Bieres, gracias por tu respuesta. Veo que lo que hace tu código es obtener ciertos valores del Hardware. Eso ya lo tenía.

Lo que necesito ahora es que no se pueda instalar la app más de una vez al mismo tiempo en el PC. ¿Sabes como hacer eso?

PD: Trabajo con C#.

Saludos y gracias!!
  #13 (permalink)  
Antiguo 19/03/2011, 18:52
Avatar de bieres  
Fecha de Ingreso: marzo-2011
Mensajes: 63
Antigüedad: 13 años, 8 meses
Puntos: 5
Respuesta: Modos de proteger mi app (Licencias)

Hola JuaNiNNaio, bueno para empezar lo que yo haria es con ese numero de serie, (que te lo tienen que mandar, para poder activar el producto), tu generas una activacion, tu codigo tiene que leer los datos, siempre que se ejecute, la primera vez que se ejecute, te debe generar un fichero, (lo guardas donde quieras, o lo que sea....), despues cada vez que se ejecuta debe de comprobar ese "fichero", y si es igual que el numero de serie, a seguir, si no no sigue, todo eso despues puedes complicarlo lo mas que puedas, codificando el fichero, poner en vez de un fichero, mas o guardar en registro, para que si elimina o modifican uno te quede otro por ahi.
Lo que comentas de instalarla en varios directorios de un mismo pc, eso no lo entiendo muy bien, pero suponemos que tienes un instalador, entonces es comprobar lo anteriormente, si exixte o no existe.
  #14 (permalink)  
Antiguo 19/03/2011, 22:26
Avatar de TECKNOCK  
Fecha de Ingreso: agosto-2010
Mensajes: 80
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Modos de proteger mi app (Licencias)

Cita:
Lo que necesito ahora es que no se pueda instalar la app más de una vez al mismo tiempo en el PC. ¿Sabes como hacer eso?
Bueno los números de serie del Disco Duro o de la Placa Base te sirven para evitar instalaciones en otros equipos.

Ahora, para evitar multiples instalaciones en el mismo equipo puedes hacer lo siguiente:

Cuando tu instalador se ejecuta, primero revisa si existe una clave X en el Registro de Windows, SI EXISTE no instala porque queire decir que ya hay una instalación previa, SI NO EXISTE crea la clave en el registro e instala el programa.

Para manejear claves en el Registro de Windows te dejo un link con información muy completa (Tiene códigos en VB y C#)

http://www.elguille.info/NET/dotnet/...dowsInicio.htm
  #15 (permalink)  
Antiguo 21/03/2011, 04:48
 
Fecha de Ingreso: diciembre-2007
Mensajes: 124
Antigüedad: 16 años, 11 meses
Puntos: 2
Respuesta: Modos de proteger mi app (Licencias)

Gracias por las respuestas.

Cita:
Iniciado por TECKNOCK Ver Mensaje
Bueno los números de serie del Disco Duro o de la Placa Base te sirven para evitar instalaciones en otros equipos.

Ahora, para evitar multiples instalaciones en el mismo equipo puedes hacer lo siguiente:

Cuando tu instalador se ejecuta, primero revisa si existe una clave X en el Registro de Windows, SI EXISTE no instala porque queire decir que ya hay una instalación previa, SI NO EXISTE crea la clave en el registro e instala el programa.

Para manejear claves en el Registro de Windows te dejo un link con información muy completa (Tiene códigos en VB y C#)

http://www.elguille.info/NET/dotnet/...dowsInicio.htm
Ese instalador lo puedo crear con VS2010 imagino ¿No?

Saludos!!
  #16 (permalink)  
Antiguo 21/03/2011, 10:51
Avatar de TECKNOCK  
Fecha de Ingreso: agosto-2010
Mensajes: 80
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Modos de proteger mi app (Licencias)

Cita:
Ese instalador lo puedo crear con VS2010 imagino ¿No?
Claro que si, en el EXPLORADOR DE SOLUCIONES le das click derecho al archivo RAÍZ de tu proyecto y eliges AÑADIR --> NUEVO PROYECTO

Cuando estés en la ventana para elegir el tipo de proyecto ala izquierda eliges "Otros Tipos de Proyecto" y buscas la opción "Instalador de Windows"

Para más información busca en google como crear proyectos de Instalción, hay bastante información.

También puedes descargar programas como InstallShield o Smart Install Maker que te ayudan a hacer Instaladores más personalizados.
  #17 (permalink)  
Antiguo 21/03/2011, 10:53
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 14 años, 4 meses
Puntos: 267
Respuesta: Modos de proteger mi app (Licencias)

Aqui te paso 2 link para que te guies con tu instalador :
setup link 1
setup link 2
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #18 (permalink)  
Antiguo 22/03/2011, 00:44
 
Fecha de Ingreso: diciembre-2007
Mensajes: 124
Antigüedad: 16 años, 11 meses
Puntos: 2
Respuesta: Modos de proteger mi app (Licencias)

Ok!! Pues muchas gracias a todos!! Me pondré a estudiar el tema.

Saludos!!
  #19 (permalink)  
Antiguo 23/09/2013, 02:13
 
Fecha de Ingreso: septiembre-2013
Ubicación: México
Mensajes: 1
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: Modos de proteger mi app (Licencias)

Hola ¿qué tal? Saludos.

Sé que esta publicación es algo añeja pero les escribo porque me intereso lo que encontré ya tenía rato buscando "generar números de serie para las aplicaciones", solo me queda una duda por resolver: ¿cómo le proporciono al cliente su respectivo número de serie? Leyendo sus comentarios, la aplicación va a calcular el número de serie ya sea en base al DD o Placa Base, se encriptan dichos números y se genera el serial, pero se me viene a la mente ¿cómo le doy al cliente su número de serie cuando le entregue su aplicación final?

Lo que busco es como lo hacen aplicaciones como Office, Adobe, Corel Draw, Nero y similares, que se venden/descargan y se proporcionan con el serial al cliente.

Última edición por theDarkSlayer; 23/09/2013 a las 03:14

Etiquetas: licencias, proteger, apps
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 14:13.