elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Sistema simple para evitar copias no autorizadas (Codigo fuente)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Sistema simple para evitar copias no autorizadas (Codigo fuente)  (Leído 4,959 veces)
byway

Desconectado Desconectado

Mensajes: 181


^^,


Ver Perfil
Sistema simple para evitar copias no autorizadas (Codigo fuente)
« en: 16 Enero 2009, 19:01 pm »

Codigo simple para evitar copias no autorizadas de nuestra aplicacion, haciendo uso de una api de comparacion sensitiva :

Código
  1. Private Declare Function lstrcmp Lib "kernel32" Alias "lstrcmpA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long

Compara dos cadenas de caracteres, dicha comparación “es sensitiva a mayúsculas y minúsculas”, es decir, para esta función:

s1 = "String 1"

s2 = "string 1"

Estas cadenas, no son iguales, ya que “s1” tiene “S” y “s2” tiene “s”.


Asi mismo obteniendo datos unicos de cada pc, en este caso el username y la serie del disco duro... se pueden obtener mas datos, pero con estos es suficiente, los guardo en un archivo, si el archivo no existe no continua con su ejecucion, si el archivo no es de la pc registrada tampoco sirve.

se puede mejorar .. cifrando los datos, escribiendolos al registro sin usar archivo alguno... pero como mencione es tan simple para lo que hace.

http://www.gigasize.com/get.php/3197892104/ejemplo_no_copias_autorizadas.rar




En línea

Vampersy

Desconectado Desconectado

Mensajes: 56


Ver Perfil
Re: Sistema simple para evitar copias no autorizadas (Codigo fuente)
« Respuesta #1 en: 17 Enero 2009, 07:20 am »

Oye byway , si no es mucha molestia cambia el link a megaupload o rapidshared por favor. Gigasize es màs publicidad que nada¡

Gracias


En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: Sistema simple para evitar copias no autorizadas (Codigo fuente)
« Respuesta #2 en: 17 Enero 2009, 10:39 am »

No es demasiado dificil parchear la llamada a esta API :P

Y por cierto, el VB ya tiene una funcion que hace lo mismo:
Código
  1. If (StrComp("HOLA", "HOLA") = 0) Then
  2.    MsgBox "Son iguales"
  3. End If

Saludos ;D
En línea

seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621


"No quiero creer, quiero saber" - Carl Sagan


Ver Perfil WWW
Re: Sistema simple para evitar copias no autorizadas (Codigo fuente)
« Respuesta #3 en: 17 Enero 2009, 16:31 pm »

o sino con Option Compare Text...
En línea

La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson
‭‭‭‭jackl007


Desconectado Desconectado

Mensajes: 1.403


[UserRPL]


Ver Perfil WWW
Re: Sistema simple para evitar copias no autorizadas (Codigo fuente)
« Respuesta #4 en: 17 Enero 2009, 16:36 pm »

no entiendo para que demonios necesitas comparar una cadena usando un api y que tiene que ver para evitar copias no autorizadas...
me acuerdo que yo usaba una conexion hacia una web, y esta brindaba la informacion si esa aplicacion estaba autorizada;e iba registrando las variaciones de los nuevos Ips de la maquina, asi se podria saber si el programa estaba siendo ejecutado en varios ordenadores... haciendo un previo estudio de las variaciones (manejo de informacion)
no me acuerdo por donde deje mi codigo, me da pereza volverlo a hacer...
En línea

el_c0c0


Desconectado Desconectado

Mensajes: 307


Ver Perfil
Re: Sistema simple para evitar copias no autorizadas (Codigo fuente)
« Respuesta #5 en: 17 Enero 2009, 17:16 pm »

No es demasiado dificil parchear la llamada a esta API :P

Y por cierto, el VB ya tiene una funcion que hace lo mismo:
Código
  1. If (StrComp("HOLA", "HOLA") = 0) Then
  2.    MsgBox "Son iguales"
  3. End If

algo que me molesta del VB es que todas esas funciones se remiten al msvbm60.dll, con apis como__strcomp o algo asi. Serian mas faciles aun de parchear sabiendo que son del mismo runtime!

saludos

Saludos ;D
En línea

'-     coco
"Te voy a romper el orto"- Las hemorroides
byway

Desconectado Desconectado

Mensajes: 181


^^,


Ver Perfil
Re: Sistema simple para evitar copias no autorizadas (Codigo fuente)
« Respuesta #6 en: 18 Enero 2009, 00:09 am »


[/quote]
Oye byway , si no es mucha molestia cambia el link a megaupload o rapidshared por favor. Gigasize es màs publicidad que nada¡

Gracias
Casi todo lo que publico lo subo al gigasize en una cuenta mia, asi veo cuanto tiempo esta online que son 90 dias si nadie lo baja.
No es demasiado dificil parchear la llamada a esta API :P

Y por cierto, el VB ya tiene una funcion que hace lo mismo:
Código
  1. If (StrComp("HOLA", "HOLA") = 0) Then
  2.    MsgBox "Son iguales"
  3. End If

Saludos ;D

o sino con Option Compare Text...
bueno se que tienen razon .. tambien se puede usar esas funciones de la libreria del vb6.0, pero en este caso uso una api para la comparacion de cadenas para la verificacion, y claro parchar esto debe ser mas facil que seguirle los rastros ala dll.

no entiendo para que demonios necesitas comparar una cadena usando un api y que tiene que ver para evitar copias no autorizadas...
me acuerdo que yo usaba una conexion hacia una web, y esta brindaba la informacion si esa aplicacion estaba autorizada;e iba registrando las variaciones de los nuevos Ips de la maquina, asi se podria saber si el programa estaba siendo ejecutado en varios ordenadores... haciendo un previo estudio de las variaciones (manejo de informacion)
no me acuerdo por donde deje mi codigo, me da pereza volverlo a hacer...
Para que demonios... pues para saber si son iguales ... y que tiene que ver para evitar copias autorizadas .. pue esa es la idea.. lol, pero como eres muy atento pudiste ver que escribi Sistema simple para evitar copias no autorizadas, y eso de la web y todo ese rollo de tus codigos y no se que mas ... andate... pues esa no es mi idea .. esto es para una pekeña aplicacion que hize .. instalarlo enla pc del usuario y no volverlo a ver mas... y te recalco SIMPLE... ok sabiondo ya lo entendiste...

PD: lo que publike no es una pregunta ni duda estupida como las de otros tratando de modificar codigo ajeno de programas tontos como troyanos y toda esa m.. ademas yo nunca critique tus codigos ni nada... ni te eche flores ... pero bueno ahora te dire ... para que mier... sirve ese cubo girando ... que hisiste con funciones matematicas ... que kerias demostrar .. que eres buen programador... por tu forma de replicar este post .. estas lejos a eso... y eso que tu vida es la programacion ...  :laugh:


Como yo casi nunca edito post pondre el codigo simple de mi sistema simple

Fom1:

Código
  1. Private Sub Form_Initialize()
  2. If App.PrevInstance = True Then  ' verificamos que solo se ejecute una solo una vez la app
  3. End
  4. End If
  5. End Sub
  6.  
  7. Private Sub Form_Load()
  8. verifica       ' llamamos al procedimiento de verificacion
  9. End Sub
  10. Private Sub verifica()
  11. On Error Resume Next
  12.  
  13. Dim nombre, disco As String
  14. Dim nombre2, disco2 As String
  15. Dim DLetra As String
  16.  
  17. If GetDriveType(DLetra) Then
  18.    nombre = Environ("computername")  'obtenemos el nombre de la pc y le asignamos a la variable
  19.    disco = SerieDisco(DLetra)        'obtenemos datos del disco duro y le asignamos a la variable
  20. End If
  21.  
  22. If Dir(App.Path & "\registro.dat") <> "" Then  'verificamos si existe el archivo de registro
  23.  
  24.    Open App.Path & "\registro.dat" For Input As #1   'abrimos el archivo de registro
  25.    Do Until EOF(1)
  26.        Input #1, nombre2                           'obtenemos las cadenas y le asignamos a las variables
  27.        Input #1, disco2
  28.    Loop
  29.    Close #1
  30.  
  31.    If lstrcmp(disco, disco2) = 0 Then              'comparamos las cadenas obtenidas con las del registro
  32.    'Todo esta conforme, entonces sigo con el nombre de la pc
  33.        If lstrcmp(nombre, nombre2) = 0 Then
  34.        'Todo esta conforme, entonces mostramos el form1
  35.        Form1.Show
  36.        Else
  37.        'no esta conforme el nombre de la pc, entonces anunciamos y terminamos todo
  38.        MsgBox ("Pc no Autorizado, contacte con su proveedor... se cerrara la aplicacion"), vbOKOnly
  39.        End
  40.    End If
  41.    Else
  42.    'no esta conforme los datos del disco duro, entonces anunciamos y terminamos todo
  43.    MsgBox ("Pc no Autorizado, contacte con su proveedor... se cerrara la aplicacion"), vbOKOnly
  44.    End
  45.    End If
  46.  
  47. Else
  48. 'no se encontro el archivo de registro, entonces anunciamos y terminamos todo
  49. MsgBox ("No se encontro el archivo registro.dat, contacte con su proveedor... se cerrara la aplicacion"), vbOKOnly
  50. End
  51.  
  52. End If
  53.  
  54. End Sub
  55.  

Modulo1:
Código
  1. Option Explicit
  2.  
  3. 'api para la compracion de 2 cadenas en forma sensitiva .. toma en cuenta todos los caracteres
  4. Declare Function lstrcmp Lib "kernel32" Alias "lstrcmpA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
  5. 'apis para obtener datos del disco duro
  6. Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal sDrive As String) As Long
  7. Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
  8.  
  9. 'Funcion para leer serie de disco duro Escrito por JuanPereZ /aRC/
  10. 'Solo he utilizado el parametro para obtener serie
  11. Function SerieDisco(SD As String) As String
  12. Dim SERIE As Long
  13. GetVolumeInformation SD, 0, 255, SERIE, 0, 0, 0, 255
  14. SerieDisco = SERIE
  15. End Function

En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: Sistema simple para evitar copias no autorizadas (Codigo fuente)
« Respuesta #7 en: 18 Enero 2009, 00:11 am »

No es demasiado dificil parchear la llamada a esta API :P

Y por cierto, el VB ya tiene una funcion que hace lo mismo:
Código
  1. If (StrComp("HOLA", "HOLA") = 0) Then
  2.    MsgBox "Son iguales"
  3. End If

Saludos ;D
algo que me molesta del VB es que todas esas funciones se remiten al msvbm60.dll, con apis como__strcomp o algo asi. Serian mas faciles aun de parchear sabiendo que son del mismo runtime!

saludos
Nunca dije que fuera mas dificil de parchear si se usara la funcion 'propia' del VB...
Por cierto, la llamada seria:'MSVBVM60.rtcCompareBstr' Si no me equivoco :P

Para mi un buen metodo es usar como constante en el PC al que esta registrada la aplicacion o el Nº de serie del %HOMEDRIVE% o el Nº de serie de W$... Y por supuesto hacer la comparacion de la forma mas compleja posible... se me ocurre por ejemplo usando ASM (CallWindowProcA)

Saludos ;D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines