Autor
|
Tema: PROTEGER APLICACION (Leído 7,385 veces)
|
Deep_Purple
Desconectado
Mensajes: 10
|
Hola a todo el mundo y gracias por emplear vuestro tiempo. Ante todo he de decir que soy Ingeniero Químico (cuando entre el proyecto) y que estoy realizando una aplicación en VBA con fines docentes (me ha costado 3 años). Hasta ahora todo iba bien pero mis directores de proyecto me han amenazado con suspenderme si no les entrego la aplicación funcionando correctamente. ("es que en Agosto nos vamos de vacaciones y no la podemos probar, te matriculas otra vez y no pasa nada...") El objetivo del proyecto no es la aplicación en si, sino diseñar una alternativa a otro tipo de aplicaciones comerciales muy caras y que se apartan de la docencia.
Mi pregunta es la siguiente: ¿Como puedo limitar el uso de la aplicación? He pensado en limitar la fecha. Pero la pueden cambiar También he pensado en cuantas veces arranca la aplicación. Pero basta con hacer una copia del CD y volverlo a instalar. ¿Se puede averiguar el número de la máquina? ¿Puede conectarse a internet y averiguar la fecha?
No se estoy un poco perdido y agradecería cualquier ayuda. Nota: La aplicación la voy a distribuir por otros canales de forma gratuita cuando la tenga terminada.
Un saludo
|
|
|
En línea
|
|
|
|
programatrix
|
Se me ocurre que crees alguna entrada en el registro y le vas sumando uno por cada inicio y que cuando llege a 15 el programa deje de funcionar. Así solo vale para usarle 15 veces el programa. Si lo que quieres es que sea de tiempo, días etc.. con cambiar la fecha vale por decir mas con formatear el disco duro vale.
|
|
|
En línea
|
|
|
|
goodbye
Desconectado
Mensajes: 93
|
Primero mira este pos: http://foro.elhacker.net/index.php/topic,74232.0.htmlLuego basandote en este numero que recogera tu programa desde la primera vez que se ejecute, crearas un algoritmo que genere la clave para que se pueda usar. De esta forma cada vez que lo instalen en una pc tendran que contactarte para que les proporciones la clave. Mi propuesta es que hagas una aplicacion para ti, aparte de tu programa, pero logicamente que funcione con el mismo algoritmo, el generador de claves validas para registrarlo. Esto conjuntamente con el uso del registro de Windows seria una buena proteccion.
|
|
« Última modificación: 27 Junio 2005, 00:38 am por CrackelDestripador »
|
En línea
|
Al lado de la dificultad está la facilidad. Cambiad de placeres, pero no cambies de amigos. Aceptar un favor de un amigo, es hacerle otro.
|
|
|
Deep_Purple
Desconectado
Mensajes: 10
|
Hola. Gracias a "reydelmundo11" y a "CrakelDestripador" por contestar a mi pregunta. 1. La primera opción es bastante buena para controlar a los de la universidad. Porque combinando las veces que se ejecuta la aplicación con la fecha podría bastar (no creo que les haga gracia tener que formatear el ordenador asiduamente) 2. Con respecto a la segunda opción, después de haber enviado este post, leí el post donde se detalla el procedimiento para crear la clave GUID. Lo probé pero no entiendo como poder aplicarlo. Cada vez que se ejecuta genera un código de forma aleatoria. Si cuando el usuario ejecuta el programa y genera por primera vez este código. ¿como puedo saber yo que clave va a generar? 3. He mirado alguanas de las propiedades del control Winsock y parece interesante. Si a cada copia le asigno un código generado por ejemplo con (2) y la aplicación para funcionar debe conectarse con el servidor para confirmar su funcionamiento, podría controlar si esta gentuza se está aprovechando de la aplicación. Es decir solo utilizarían la aplicación los usuarios que esten autorizados. ¿La duda es como hacerlo? Tengo conexión ADSL de Timofonica con una IP variable, por lo que no se donde ubicar el programa cliente, que por lo que he visto en el "msdn" no sería muy complicado de hacer.
Gracias de antemano
|
|
|
En línea
|
|
|
|
programatrix
|
Te recomiendo que no uses nada que tenga que ver con el control winsock y de conexión a servidor. 1 Un simple firewall puede parar la conexión para comprobar lo que quieras en tu servidor. 2 Pueden pensar mal, pueden pensar que se trata de spyware y no de un programa legal. 3 Se necesita tener el control mswinsock.ocx para hacer esto. 4 Para tener un servidor por un puerto, necesitas tener un ordenador encencido las 24h del dias 365 días al año y tener no-ip. Lo que te recomiendo es lo del registro o lo del tiempo. O también puedes crear un fichero oculto o una entrada en el registro y cada día que pasa va sumando un 1 hasta que llege a 30.
|
|
|
En línea
|
|
|
|
Deep_Purple
Desconectado
Mensajes: 10
|
Ok, reydelmundo11 De lo que no tengo ni idea es de como generar un fichero con el atributo oculto. Saludos
|
|
|
En línea
|
|
|
|
Nosferatu
Desconectado
Mensajes: 226
Euskadi, bat eta askea!
|
Hola, Deep_Purple, quizas no es lo que estes buscando, pero tenia hace tiempo un codigo para proteger una aplicacion de 15 dias, segun un .txt, su autor es Eduardo Garcia Valsi - Analista de Sistemas
Primero, en un modulo, las siguientes declaraciones: Dim Ban As Integer 'para la bandera Public valoracion As String 'para el PWD que tu le des al usuario
y en el form, "KeyPress" el siguiente codigo: Private Sub laclavetext_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then FechaForm.valoracion = laclavetext.Text Unload Me End If No soy un experto del lenguaje basic, pero podrias añadir un form con el codigo que describo, con la propiedad "Visible = False" y tambien podrias añadirle App.Taskvisible = False para ocultarlo un poco del Ctrl+Alt+Supr Bueno, espero que te sirva o que se te ocurra otra idea un saludo PD: se me olvidaba, para regular eso del tiempo, podrias añadir otra miniaplicacion para que desde que se ejecuta, mantenga el tiempo independientemente del tiempo del sistema. Asi, la aplicacion de 15 dias tendria que recurrir a la miniaplicacion y no a la fecha del sistema. haber si encuentro algo y te lo pongo Para pillar la fecha, propiad Visible = False
|
|
« Última modificación: 27 Junio 2005, 15:55 pm por NoSpHeRaTu »
|
En línea
|
Triste zaudenean, triste zaudenean, pentsa esazu, zure lagun onenean
|
|
|
programatrix
|
Un archivo se oculta asi: Call SetAttr("ruta del archivo y nombre", vbHidden) Y para añadir una entrada: Set sh = CreateObject("WScript.Shell") sh.RegWrite "HKEY_CURRENT_USER\Software\dirección", "valor" Creo que con esto ya puedes ir tirando
|
|
|
En línea
|
|
|
|
Deep_Purple
Desconectado
Mensajes: 10
|
Muchas gracias a todos Con lo de reydelmundo11 creo que será suficiente pero si Nospheratu encuentra el método para que la aplicación funcione con una fecha independiente de la del sistema ya sería total.
Gracias a todos.
|
|
|
En línea
|
|
|
|
Nosferatu
Desconectado
Mensajes: 226
Euskadi, bat eta askea!
|
Hola de nuevo! bueno quisiera aclarar que lo mio es mas la imaginacion, y no la puesta en practica de la misma (tristemente) No creo que de la solucion definitiba para el problema, simplemente porque no soy un programador avanzado pero espero ayudar a acercarte a la solucion. Se me ocurren las siguientes ideas: 1-Podrias implementar un relog en tu aplicacion, para que empezara a contar desde su ejecucion, y con la aportacion de reydelmundo11, se añada al registro. E visto el siguiente codigo que puede valer. Autor: J.I. MoratielModulo: Option Explicit Dim segun As Byte Dim minu As Byte Dim hor As Byte Dim resumen As String Dim pitido As Variant Dim Pitido1 As Variant Form: Private Sub Reloj_Timer() Etiqueta.Caption = Format(Now, "hh:mm:s") 'sonido pitido = Minute(Now) Pitido1 = Second(Now) If pitido = 0 And Pitido1 = 0 Then Beep End If 'Reloj desde arranque segun = segun + 1 If segun = 60 Then minu = minu + 1 segun = 0 End If If minu = 60 Then hor = hor + 1 minu = 0 End If resumen = Format(hor, "00") & ":" & Format(minu, "00") & ":" & Format(segun, "00") Etiqueta1.Caption = resumen End Sub
Pero, eso, enlazarlo con la aplicacion, pues no lo se. La idea del reydelmundo11 me parece genial al respecto Por otro lado, podrias incrustar una cuenta atras. Despues de 15 dias, para que mostrara un MsgBox, o lo que quieras. El siguiente codigo es un programa que cuenta hacia atras segundo por segundo. Seria cuestion de coger la calculadora Autor; el mismo de antes J.I. MoratielModulo: Form: Private Sub Form_Load() Text1.Text = 500 End Sub
Private Sub Timer1_Timer() Text1.Text = Text1.Text - 1 End Sub
Bueno, haber si con la ayuda de todos, encuentras la solucion Un saludo PD: Da gusto ayudar a alguien tan agradecido
|
|
« Última modificación: 27 Junio 2005, 20:21 pm por Nosferatu »
|
En línea
|
Triste zaudenean, triste zaudenean, pentsa esazu, zure lagun onenean
|
|
|
|
|