Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: Waldo en Mayo 07, 2014, 04:40:22 pm
-
Hola gente, quería consultarles que técnicas utilizan uds para proteger su app de la pirateria o distribucion ilegal.
Estuve pensando en MAC, Serial Disco, etc, pero no me termino de decidir.
Por ej el MAC supuestamente se puede clonar.
El serial del disco es de "software" salvo el serial de fabrica, real, real, pero si la app no corre como Administrador, no encontre forma de obtenerlo, y eso es un problema, porque habria que exigir que nuestra app corra como administrador.
Copiar algun archivo en algun lugar escondido, o alguna clave escondida en el registro, me clonan el disco y chau proteccion.
En definitiva, creo que lo unico que sirve es el registro ON LINE; pero hay que exigirle al cliente que tenga internet, y tal vez tiene varios puestos, que no tienen salida a internet.
Escucho sus experiencias.
Muchas gracias
-
Yo llevo 12 años de incertidumbre como vos y he probado todos los métodos. Por experiencia propia creo que no hay un mejor métodos para todo sino un mejor método para una necesidad determinada.
Hoy estoy utilizando el registro online para los software que son más económicos y para los que significan una inversión importante para el cliente y para mi los distribuyo con llaves de seguridad electrónicas lo que lo encarece un poco ($ 400) pero en definitiva lo paga el cliente y lo gana en independencia y sobre todo lo que les gusta de este metodo es que pueden instalarlo en mas de una PC solo que tienen que mover la llave de PC.
Dicen algunos que estas llaves tambien pueden ser vulneradas y no me cabe duda pero hay que ver si el sosftware que distribuyes es tan tentador para que caigan en manos equivocadas y quiera y sepa como bulnerarlo.
Saludos
-
Han pensado que con memorias usb, un soft en la memoria usb con la mac de la memoria y el id de la memoria pueden trabajar algo, tienen que crear un algoritmo para que el soft de la computadora reciba y decifre que la licencia es correcta!!!!
Y si la memoria no esta en la computadora, el soft no entra!!!!!
Se regala el Soft pero se vende la USB !!!!! jajajaj trolll
-
La verdad es algo para pensar detenidamente, hay muchas alternativas, pero como dice Bazooka, hay un mejor método según una determinada necesidad. Yo en mi particular caso terminé creando mi propia solución, basandome en el sistema ActiveLock, lo que no me gusta de activelock es que el fuente está al alcance de todos, lo que lo vuelve poco fiable.
Para mi caso uso la MAC, el HDD serial (la App DEBE tener privilegios de Admin) y la fecha, y estas se almacenan en Archivos ocultos, el Registro de Windows ó inclusive en archivos de mi propia App a los que les incrusto la info "en Binario" ...
Aunque igual concuerdo contigo que la mejor opción es la verificación OnLine .... pero bueno...
Podrías partir revisando ActiveLock, es un buen comienzo
-
Hola AxioUK, es como comentas para leer el HDD serial, tiene que correr como Admin, una lastima.
Copiar archivos ocultos, claves en el registro, etc, esta bueno, pero si nos clonan el disco... se copiaran tambien todos nuestros archivos ocultos :( y la verdad que el usuario no tiene que tener muchas luces para clonar un disco :S
-
Pero Clonas el Disco en su estructura de Datos, no la Serial del Firmware del Disco ni la MAC del PC... ya he hecho mis pruebas con mi sistema y con clonar el disco te blokea la App... ;D
Hasta ahora la que mejor a pasado las pruebas es la versión que escribe en el mismo EXE los datos de registro.... 8)
-
Ah si la serial del disco obviamente no se clona, pero la contra es que la app tiene que correr como admin.
La mac creo que si se puede clonar, o emular.
Como es eso de escribir en el EXE los datos de registro? compilas un exe para cada cliente?
-
No es Necesario, al interior de la App genero un String de longitud fija: puede ser "xxxxxxxxxxxxxxxxxxxx" y durante la primera ejecución se reemplaza esta string con los datos que leera la app a futuro para comparar con la key generada en base a la MAC y al HDDSerial.... para evitar que la App reemplaze este string ante cualquier eventualidad o intento de Hackeo, incluyo una función que compara y evalua esa string. :P
Simple y efectivo, no?
Y ya no doy más explicaciones pues estaria entregando el crack en bandeja (-.-), aunque mis App no son lo bruto de envidiables o deseables... jaja
Saludos
-
Mira yo me base en esta pagina
http://jossm03.blogspot.com/2013/07/llave-usb-para-mi-aplicacion-parte-i.html (http://jossm03.blogspot.com/2013/07/llave-usb-para-mi-aplicacion-parte-i.html)
lo que tienes que hacer es pedir un serial para validarlo que con un algoritmo se convierta al serialnumber de la usb, espero te sirva. Así hago yo mis licencias claro.
En VB.Net
-
La unica manera de hacerlo es no USAR IF.... los ifs son muy faciles de evadir cuando se debugea un programa lo mejor es usar select es mucho mas complejo para el hacker pero no imposible.
Tambien deben agregar un poco de seguridad por ejemplo: Divisiones 1 / 0 esto en vb no tira error, pero a los debugueadores los hace explotar osea que es un metodo que sirve pero repito, si a WIndows, Adobe y muchas empresas de la puta madre los pueden hackear todos nosotros somos mosquitos....
Utilizo el serial del HD ojo no el serial que te da WINDOWS sino el de fabricacion, muchos cuando formatean la pc se les cambia pero el de fabrica es el mismo siempre.
Ademas hay un modulo y clase de Cobein para detectar los debugers y hacerlos explotar es muy interesante. les dejo el link...
https://dl.dropboxusercontent.com/u/6160346/Vb6/mDebugDetect.bas
https://dl.dropboxusercontent.com/u/6160346/Vb6/cIsDebuggerPresent.cls
Tambien se podrian usar Memorias Flash (Pendrive) el tema es que ya son un par de dolares mas para agregarle depende el pais, en argentina no tiene sentido comprar un pendrive de 4 o 8 gb que es lo MENOS que viene a un valor de 120 a 160 pesos donde no se va a usar NADA solo para llave, aunque si lo usan como backup... es otra cosa.
saludos
-
Ya me entro una duda amigo SKL, en esta parte comentas:
"Utilizo el serial del HD ojo no el serial que te da WINDOWS sino el de fabricacion"
Ya me entro la duda de si estoy usando el serial de windows o del hd, mañana que este en mi casa lo checo pero te agradeceria si pudieras compartir el codigo con el que se consulta por el serial del HD.
Muchas gracias por las rescomendaciones. +1
-
Private Function GetSerialDisk() As String
Dim svc As Object
Dim objEnum As Object
Dim s1 As String
Dim obj As Object
Set svc = GetObject("winmgmts:root\cimv2")
Set objEnum = svc.execQuery("select SerialNumber from win32_physicalMedia ")
s1 = ""
For Each obj In objEnum
s1 = s1 + obj.GetObjectText_ + vbCr
Next
s1 = Split(s1, vbLf)(3)
s1 = Trim$(Split(s1, """")(1))
GetSerialDisk = s1
End Function
Ese es el que yo utilizo, solo sirve para HD tengo otros dando vuelta lo tengo que buscar, creo que este tambien lo usa cobein en sus aplicaciones es mas creo que el me lo paso jaja
-
Excelente amigo muchas gracias.
-
Muchas gracias SKL por todos tus TIPS.
Efectivamente hay un codigo que devuelve el serial real del disco, pero la app tienen que correr con derechos de Admin.
Muy buena la de no usar IF y usar Selects, no la sabia
-
La unica manera de hacerlo es no USAR IF.... los ifs son muy faciles de evadir cuando se debugea un programa lo mejor es usar select es mucho mas complejo para el hacker pero no imposible.
Tambien deben agregar un poco de seguridad por ejemplo: Divisiones 1 / 0 esto en vb no tira error, pero a los debugueadores los hace explotar osea que es un metodo que sirve pero repito, si a WIndows, Adobe y muchas empresas de la puta madre los pueden hackear todos nosotros somos mosquitos....
Utilizo el serial del HD ojo no el serial que te da WINDOWS sino el de fabricacion, muchos cuando formatean la pc se les cambia pero el de fabrica es el mismo siempre.
Ademas hay un modulo y clase de Cobein para detectar los debugers y hacerlos explotar es muy interesante. les dejo el link...
https://dl.dropboxusercontent.com/u/6160346/Vb6/mDebugDetect.bas
https://dl.dropboxusercontent.com/u/6160346/Vb6/cIsDebuggerPresent.cls
Tambien se podrian usar Memorias Flash (Pendrive) el tema es que ya son un par de dolares mas para agregarle depende el pais, en argentina no tiene sentido comprar un pendrive de 4 o 8 gb que es lo MENOS que viene a un valor de 120 a 160 pesos donde no se va a usar NADA solo para llave, aunque si lo usan como backup... es otra cosa.
saludos
Hola amigo muy buen aporte este no lo sabia y nunca viene mal una protección adicional!
Respecto al modulo de Cobein (mDebugDetect.bas) supongo que paaa usarlo nada mas hay que invocar el proc. TestDebug o con sólo colocarlo en el proyecto basta?
Y aprovecho y pregunto en este hilo ya que estamos hablando de seguridad...
¿Es sencillo averiguar cual es el parámetro que espera un ejecutable para abrir?
supongamos este ejemplo:
Const pass = "mypass"
Private Sub Form_Load()
If Command <> pass Then
MsgBox "No es la contraseña correcta", vbCritical
Else
MsgBox "bienvenido"
End If
End Sub
y una pregunta mas..
¿Los comentarios del codigo es posible verlos de algun modo una vez en el exe ?
ejemplo:
Const pass = "mypass" 'esta es mi contraseña
-
Con el VB Decompiler Pro se leen todos los comentarios...
-
Con el VB Decompiler Pro se leen todos los comentarios...
Los comentarios no se compilan :P
-
hmm yo siempre escuche que los comentarios al momento de compilar son descartados