Hola que tal amigos de indetectables, Después de un tiempo sin entrar ahora vengo con ideas frescas y con ganas de aprender mas de ustedes jiji.

Tengo ganas de crear una aplicación que solo se pueda abrir en un solo ordenador, por ejemplo:
trabajo en una empresa donde me piden crear una aplicación de registro de datos con base d datos el cual ya lo tengo solo que como se como son aquí si les doi la aplicación son capaces de abrirla en mas de un ordenador lo cual yo no quiero por que no son parte d mis actividades por eso quiero que solo lo pruebe el gerente de la compañía no se si me entiendan bueno intente con este código lo cual es demasiado fácil y en cual quier ordenador teniendo la pass abriría

Código: Seleccionar todo

Private Sub command1_click()
If Text1.Text = "PASSWORD AQUI" Then
MsgBox "Bienvenido, gracias por elegir mis programas", vbInformation, "Programas By c4rt3l"
Form2.Show
Form1.Hide
Else
MsgBox "Acceso denegado, ponte en contacto con la persona que te proporciono el programa", vbInformation, "Programas by c4rt3l"
End
End If
End Sub
Tambien intente con este pero igual es simple

Código: Seleccionar todo

Option Explicit
Public x As String
Public LoginSucceeded As Boolean

Private Sub cmdCancel_Click()

    LoginSucceeded = False
End
End Sub

Private Sub cmdOK_Click()
    If txtPassword = "password" And txtUserName = "usuario" Then
        
        Form1.Show
        LoginSucceeded = True
        Me.Hide
        Open "C:\probando.txt" For Append As #1
        Close #1
    Else
        MsgBox "La contraseña no es válida. Vuelva a intentarlo", , "Inicio de sesión"
        txtPassword.SetFocus
        SendKeys "{Home}+{End}"
    End If
End Sub

Private Sub Form_Load()

On Error GoTo Fallo
x = GetAttr("C:\probando.txt")
Form1.Show
Me.Hide
Exit Sub

Fallo:
End Sub
Quisiera saber si hay algo un poquito mas seguro no se como por ejemplo se me ocurre una aplicación previa al ejecutar el programa, no se algo como que saque algún dato o algo que yo agregue al programa bueno para que solo se ejecute en ese ordenador.

Bueno espero que me pudieran ayudar saludos y gracias
Voy a citar lo que me dijeron PeterPunk y linkgl hace ya tiempo
PeterPunk escribió:
ap0calypt0 escribió:Eres muy bueno en eso. Entonces como podria ponerle mas seguridad para que no salga tan facil....
linkgl escribió:Pues como te había mencionado, puedes encriptar la string y hacer una rutina confusa sumandole restandole y multiplicandole valores a la string y al momento de compararla no concactenar toda la cadena en una variable por que si no ahí tirará el password.! Lo ideal sería que pusieras no solo una contraseña para todas las PC si no que pusieras un campo para escribir un nombre y abajo el campo para el serial, así tomas el nombre y le sumas valores o los restas y con el nombre generas un serial único ;) Esa es la idea pues y no uses msgbox es fácil identificar las llamadas a las APIS con ollydbg! xD son un par de sugerencias de un novato(yo) en esto jeje
Y a poder ser, nunca hagas una comparación directa como en este caso ya que con poner un breakpoint en __vbaStrCmp ya puedes ver en la pila (en el ollydbg lo que aparece abajo a la derecha) el serial introducido y el válido.
Ejemplo:

Código: Seleccionar todo

Private Sub Command1_Click()
Dim szNombre As String
Dim szSerial As String
Dim i As Byte
Dim valido As Boolean
  If Text1.Text = "" Or Text2.Text = "" Then
    valido = False
  Else
    szNombre = Text1.Text
    szSerial = Text2.Text
    For i = 1 To Len(szNombre)
      Mid(szNombre, i, 1) = Chr(Asc(Mid(szNombre, i, 1)) + 1)
    Next i
    For i = 1 To Len(szSerial)
      Mid(szSerial, i, 1) = Chr(Asc(Mid(szSerial, i, 1)) - 1)
    Next i
    If szNombre = szSerial Then
      valido = True
    End If
  End If
  If valido Then
    MsgBox "Bien"
  Else
    MsgBox "Mal"
  End If
End Sub
En este caso aunque pongas un breakpoint en __vbaStrCmp no vas a ver el serial bueno.

Saludos.
Prueba así y luego usa el upx...

Mostrar/Ocultar

perdón amigo pero no entiendo la lógica del programa podrías explicarme con peras y manzanas para un mejor entendimiento y mejor razonamiento ala hora de poner el código :-?.

Otra cosa yo me refería a crear un serial único de una pc especifica e introducirlo al programa para que solo abra en esa pc saludos
Si quieres que funcione solamente en una pc, tienes que manejar el concepto de HWID, lo que no quita que mas tarde pueda ser crackeado facilmente. Ok ?
Imagen
no me preocupe que pueda ser crackeado solo que funcione en la pc de la gerencia podrían ayudarme con el source?

Código: Seleccionar todo

#include <windows.h>

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
  HW_PROFILE_INFO hwid;
   if (!GetCurrentHwProfile(&hwid)) 
   {
      return 0;
   }
	
	MessageBox(NULL,(hwid.szHwProfileGuid), "HWID",0);
	return 1;

}
Pedile a algun buen samaritano que te lo traduzca a vb6
Imagen
Solo busca hwid en vb6...

Por ahí tienes varios ejemplos que funcionan bien.

Si no eres capaz, te echo una mano.
Spyren Private Crypter-Binder [Autoit]
Crypter Online 0/35 (Terminado)
mi estimado duendai la verdad llebo 2 mias mirando eso del HWID y no entiendo un carajo :(
Podrias Hecharme la mano o darme un golpe de conocimiento?
Responder

Volver a “VB/.NET”