Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Protezione programma In VB 6
Forum - Visual Basic 6 - Protezione programma In VB 6

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
alex89bari (Normal User)
Newbie


Messaggi: 12
Iscritto: 08/07/2010

Segnala al moderatore
Postato alle 12:42
Venerdì, 09/07/2010
Questo topic è stato chiuso dal moderatore

Ciao a tutti ragazzi sto creando un software che con tutta probabilità venderò nei prossimi mesi però prima di distribuirlo voglio assicurarmi che il programma possa girare solo su macchine il cui seriale viene riconosciuto, ovviamente nel codice sorgente imposterò io il seriale dei pc di coloro che comprano il mio programma e se vorranno utilizzarlo su un altro pc devo modificare il sorgente variando l'algoritmo di riconoscimento del seriale.
è un programma di gestione aziendale quindi che venderò come supporto al lavoro che svolgo.

avevo pensato ad un algoritmo che controllasse se il seriale della scheda madre o quant'altro corrisponde a quello presente nel sorgente (che indicherò io) e solo se supera il controllo si deve avviare il programma.

credo sia una cosa possibile....

grazie a tutti


PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 13:11
Venerdì, 09/07/2010

tutto è fattibile, ma ti addentri in un mondo moolto delicato, soprattutto per l'intrinseca insicurezza di vb6 a causa dei decompilers. Puoi cmq implementare il metodo che preferisci e poi dare in pasto l'exe ad un packer abbastanza serio.

Una cosa che mi sento di criticare fermamente è la scelta di realizzare un software da vendere nel 2010 in vb6, i tuoi clienti sanno che il linguaggio che hai usato è completamente deprecated dalla stessa microsoft? che non offrono più security fixes da un bel pezzo quindi non si garantisce più la sicurezza di un'applicazione compilata in vb6?


PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6130
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 13:36
Venerdì, 09/07/2010
Beh, Alex, una protezione per il VB6 lascia il tempo che trova.

Sicuramente non permetterà che il primo "ragazzino" ti copi il programma ma, sicuramente, se la cosa diventa "appetibile", gli interessati sapranno come fare ...



Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM
Avatar
alex89bari (Normal User)
Newbie


Messaggi: 12
Iscritto: 08/07/2010

Segnala al moderatore
Postato alle 15:18
Venerdì, 09/07/2010
vi ringrazio per i consigli, sono riuscito a mettere una piccola protezione con il codice seguente:
Codice sorgente - presumibilmente VB.NET

  1. Private Sub cmdOK_Click()
  2. Dim serial As String * 10
  3. Call IsWMIInstalled
  4. serial = GetSerialInfo("BaseBoard")
  5. If serial = "CZC91480B2" Then 'il programma va avanti solo se la mb ha seriale CZC91480B2
  6.              If txtUserName.Text <> "alex" Then
  7.             MsgBox "Nome utente errato", , "Login"
  8.         Else
  9.             If txtPassword = "alex" And txtUserName.Text = "alex" Then
  10.             'place code to here to pass the
  11.             'success to the calling sub
  12.             'setting a global var is the easiest
  13.                 LoginSucceeded = True
  14.                 Me.Hide
  15.                 form_menu.Show
  16.             Else
  17.                 MsgBox "Password Errata", , "Login"
  18.                 txtPassword.SetFocus
  19.                 SendKeys "{Home}+{End}"
  20.             End If
  21.         End If
  22. Else
  23.     MsgBox "Utente non autorizzato ad eseguire l'applicazione", , "ERRORE BLOCCANTE"
  24.     End
  25. End If
  26.  
  27. End Sub
  28.  
  29. Private Function GetSerialInfo(device As String) As String
  30.     Dim objs As Object
  31.     Dim obj As Object
  32.     Dim WMI As Object
  33.     Dim sAns As String
  34.      
  35.     Set WMI = GetObject("WinMgmts:")
  36.     Set objs = WMI.InstancesOf("Win32_" & device)
  37.     For Each obj In objs
  38.       sAns = sAns & obj.SerialNumber & vbCrLf
  39.     Next
  40.      
  41.     GetSerialInfo = Replace$(sAns, " ", "")
  42. End Function
  43.  
  44. Function IsWMIInstalled() As Boolean
  45.  
  46.     Dim oTemp
  47. On Local Error Resume Next
  48.      
  49.     Set oTemp = CreateObject("WbemScripting.sWbemLocator")
  50.    
  51.     IsWMIInstalled = (Err.Number <> 429)
  52.    
  53.     If Err.Number = 429 Then
  54.       Err.Clear
  55.       Else
  56.       Set oTemp = Nothing
  57.     End If
  58.  
  59. End Function



é chiaro che non è una protezione ottima ma io mi occupo di consulenza aziendale per i ristoratori, affiancherò questo programma alla mia di consulenza e lo installerò personalmente sulle macchine di coloro che lo utilizzeranno. quindi di volta in volta verificherò il seriale delle loro macchine e modificherò il sorgente.
lo faccio per fare in modo che questi miei clienti non possano regalare il programma ad altre persone senza prima interpellarmi.
certo se poi si diffonderà e qualcuno cercherà di bucarlo allora non potrò che essere fiero di me per aver realizzato un programma talmente buono che ne varrà la pena crakkarlo!

PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 15:25
Venerdì, 09/07/2010
Testo quotato

Postato originariamente da alex89bari:
certo se poi si diffonderà e qualcuno cercherà di bucarlo allora non potrò che essere fiero di me per aver realizzato un programma talmente buono che ne varrà la pena crakkarlo!



sinceramente non sono ancora riuscito a mangiarci con la soddisfazione, se ci riesci te sei bravo allora :)

PM
Avatar
alex89bari (Normal User)
Newbie


Messaggi: 12
Iscritto: 08/07/2010

Segnala al moderatore
Postato alle 15:29
Venerdì, 09/07/2010
Testo quotato

Postato originariamente da HeDo:

Testo quotato

Postato originariamente da alex89bari:
certo se poi si diffonderà e qualcuno cercherà di bucarlo allora non potrò che essere fiero di me per aver realizzato un programma talmente buono che ne varrà la pena crakkarlo!



sinceramente non sono ancora riuscito a mangiarci con la soddisfazione, se ci riesci te sei bravo allora :)



Sicuramente neanche io ci riuscirò a mangiare con la soddisfazione ma so benissimo che con il programma ma senza la mia consulenza le azienda non possono andare da nessuna parte.
diciamo che senza di me il programma è fine a se stesso :):):) xkè si tratta solo di uno strumento di aiuto e di "stima" della gestione e non lo strumento che fa la gestione :):)

Ultima modifica effettuata da alex89bari il 09/07/2010 alle 15:30
PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6130
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 16:06
Venerdì, 09/07/2010
Testo quotato

vi ringrazio per i consigli, sono riuscito a mettere una piccola protezione con il codice seguente



Ok ... diciamo che il primo che lo riterrà utile, lo supererà in 5 minuti ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 16:51
Venerdì, 09/07/2010
Testo quotato

Postato originariamente da nessuno:

Testo quotato

vi ringrazio per i consigli, sono riuscito a mettere una piccola protezione con il codice seguente



Ok ... diciamo che il primo che lo riterrà utile, lo supererà in 5 minuti ...



già, basta anche un hex editor, visto che il seriale è salvato all'interno dell'eseguibile senza alcun tipo di criptazione :)

PM
Avatar
Bl4ck3rk1ll (Normal User)
Rookie


Messaggi: 33
Iscritto: 08/03/2010

Segnala al moderatore
Postato alle 13:09
Domenica, 11/07/2010
non potresti fare un confronto tra il seriale immesso e magari un file txt hostato?

PM
Pagine: [ 1 2 3 ] Precedente | Prossimo