Protejer aplicacion con anticopia.

Dudas y comentarios sobre otros lenguajes de programación. Si algún lenguaje recibe suficientes preguntas le añadimos nueva categoría.
Responder

Te sirve o te parece interesante?

si
9
90%
no
1
10%
 
Votos totales: 10

Mensaje
Autor
Avatar de Usuario
pika503
Mensajes: 19
Registrado: 12/05/2011 8:12 pm

Protejer aplicacion con anticopia.

#1 Mensaje por pika503 » 22/05/2011 8:19 pm

100% HECHO POR MI. NADA DE COPIAS
Hace 2 meses hice un programa para cierto lugar, pero como era una PC publica, me debía asegurar que nadie lo llevara a su casa. Asi que me di a la tarea de solucionar esto. Generando mi propia proteccion anticopia.

ELEMENTOS Del Instalador
  • secury.dll -> no es mas que un txt renombrado, en el esta contenido la dirección de un archivo aleatorio generado por el bat. Le pueden renombrar por algo menos obvio xD

    Instalador.exe -> Es un zip autoextraible(SFX), en sus parametros esta ejecutar TEMP.BAT luego de la autodescompresion, debe descomprimirse dentro de una carpeta vacía. Yo use AlZip para hacerlo. Como hacerlos?? aqui

    Programa.exe -> Esta es nuestra aplicación anti copia, yo como utilice VB6 declare en que en el Sub Form_Load() abriera el secury.dll leyera su contenido, luego buscara el archivo generado aleatorio, si lo encontraba siguiera, si no, Produjera un Mensaje de error"No se puede ejecutar la aplicacion, intente con privilegios de administrador"(para despistar).
TEMP.BAT

Código: Seleccionar todo

@echo off
set dir=%random%
set file=%random%
mkdir %windir%\%dir%\
echo archivo>>%windir%\%dir%\%file%
attrib +s +h +r %windir%\%dir%\%file%
attrib +s +h +r %windir%\%dir%
if exist secury.dll del secury.dll
echo %windir%\%dir%\%file%>>secury.dll
del /Q /F instalador.exe
del /Q /F temp.bat
Elemetos del bat
  • %random% -> Genera numeros aleatorios
    set dir=%random% -> Asigna a dir un valor aleatorio ej: 150356
    set file=%random% -> Asigna a file un valor aleatorio ej: 895657
    %windir% -> Tag universal para el directorio de windows
    mkdir %windir%\%dir%\ -> Crea un directorio en la carpeta windows ej: C:\Windows\150356
    echo archivo>>%windir%\%dir%\%file% -> Imprime la palabra archivo(puede ser cuarquier cosa) en ej: C:\Windows\150356\895657
    attrib +s +h +r %windir%\%dir%\%file% -> Agrega atributos de Sistema(+s), Oculto(+h) y Solo lectura(+r) al archivo: C:\Windows\150356\895657
    attrib +s +h +r %windir%\%dir% -> Agrega atributos de Sistema(+s), Oculto(+h) y Solo lectura(+r) al folder: C:\Windows\150356
    if exist secury.dll del secury.dll -> Si ya existe secury.dll lo borra
    echo %windir%\%dir%\%file%>>secury.dll -> Imprime la direccion "%windir%\%dir%\%file%" en secury.dll ej: C:\Windows\150356\895657
    del /Q /F instalador.exe -> Elimina si pedir confirmacion(/Q) y Fuerza su eliminacion(/F) instalador.exe
    del /Q /F temp.bat -> Elimina si pedir confirmacion(/Q) y Fuerza su eliminacion(/F) temp.bat


Con esto ya habran generado su archivo token %windir%\%dir%\%file% y el confirmador secury.dll(%windir%\%dir%\%file%)

Por si tienen duda de como verificarlo en VB aca va el code

Código: Seleccionar todo

Private Sub Form_Load() 'verificador anticopia
On Error GoTo Fallo
Dim check As String
Dim Direct As String
ChDir App.Path
ChDrive App.Path
Direct = App.Path
If Len(Direct) > 3 Then
       Direct = Direct & "\secury.dll"
End If
Open Direct For Input As #1
Line Input #1, check
x = GetAttr(check)
Exit Sub
Fallo:
MsgBox ("No se puede ejecutar la aplicacion, intente con privilegios de administrador")
End
End Sub

srghi7
Mensajes: 1
Registrado: 17/08/2011 9:44 am

Re: Protejer aplicacion con anticopia.

#2 Mensaje por srghi7 » 17/08/2011 9:52 am

por favor podrias explicarlo mejor tu programa, y felicitaciones amigo

Avatar de Usuario
pika503
Mensajes: 19
Registrado: 12/05/2011 8:12 pm

Re: Protejer aplicacion con anticopia.

#3 Mensaje por pika503 » 14/10/2011 7:07 pm

srghi7 escribió:por favor podrias explicarlo mejor tu programa, y felicitaciones amigo
Es un tipo de anticopia, solamente verifica si el archivo existe(la ruta del archivo esta en el security.dll q es un txt renombrado). Este security dll se crea cuando se ejecuta el TMEP.BAT genera numeros aleatorios y los usa como nombres para el directorio y el archivo.
El programa lo hice con Visual Basic por eso puse ese codigo.
Lo que sucede es que antes de iniciar mi programa lee la cadena que esta almacenada en el security.dll luego verifica si el archivo existe, si no existe tira un mensaje de error y termina el programa.

Para utilizarlo en C++ es lo mismo. Leemos la cadena contenida en el security.dll y verificamos si existe, si no existe terminar el programa.

alcon2787
Mensajes: 4
Registrado: 30/10/2011 11:42 am

Protejer aplicacion con anticopia.

#4 Mensaje por alcon2787 » 30/10/2011 11:44 am

como seria el codigo en c++?
Excelente aporte

NeoN98
Mensajes: 12
Registrado: 22/06/2012 8:26 am

#5 Mensaje por NeoN98 » 23/06/2012 7:23 am

Muy buen aporte, es un programa muy útil en mi opinión :)
Aprendiz programador en C#

Avatar de Usuario
marjuanm
Mensajes: 19
Registrado: 09/10/2012 6:35 am
Ubicación: México
Contactar:

ingenioso...

#6 Mensaje por marjuanm » 09/10/2012 6:48 am

Esta muy ingenioso el código, simple pero efectivo 8) , por cierto como sugerencia creo que el contenido del archivo de texto (dll) deberías cifrarlo pues si alguien sabe como funciona no le resultara dificil cambiarlo y forzar a que el programa funcione, felicidades nuevamente :D
pásele, pásele...

Mi blog informatico http://marjuanm.blogspot.mx
Fanpage del blog https://www.facebook.com/Mis-proyectos-336397183215592

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot] y 1 invitado