Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
09/07/10 10:42
alex89bari
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

aaa
09/07/10 11:11
HeDo

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?

aaa
09/07/10 11:36
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 ...

09/07/10 13:18
alex89bari
vi ringrazio per i consigli, sono riuscito a mettere una piccola protezione con il codice seguente:
Private Sub cmdOK_Click()
Dim serial As String * 10
Call IsWMIInstalled
serial = GetSerialInfo("BaseBoard")
If serial = "CZC91480B2" Then 'il programma va avanti solo se la mb ha seriale CZC91480B2
             If txtUserName.Text <> "alex" Then
            MsgBox "Nome utente errato", , "Login"
        Else
            If txtPassword = "alex" And txtUserName.Text = "alex" Then
            'place code to here to pass the
            'success to the calling sub
            'setting a global var is the easiest
                LoginSucceeded = True
                Me.Hide
                form_menu.Show
            Else
                MsgBox "Password Errata", , "Login"
                txtPassword.SetFocus
                SendKeys "{Home}+{End}"
            End If
        End If
Else
    MsgBox "Utente non autorizzato ad eseguire l'applicazione", , "ERRORE BLOCCANTE"
    End
End If

End Sub

Private Function GetSerialInfo(device As String) As String
    Dim objs As Object
    Dim obj As Object
    Dim WMI As Object
    Dim sAns As String
     
    Set WMI = GetObject("WinMgmts:")
    Set objs = WMI.InstancesOf("Win32_" & device)
    For Each obj In objs
      sAns = sAns & obj.SerialNumber & vbCrLf
    Next
     
    GetSerialInfo = Replace$(sAns, " ", "")
End Function

Function IsWMIInstalled() As Boolean

    Dim oTemp
On Local Error Resume Next
     
    Set oTemp = CreateObject("WbemScripting.sWbemLocator")
   
    IsWMIInstalled = (Err.Number <> 429)
   
    If Err.Number = 429 Then
      Err.Clear
      Else
      Set oTemp = Nothing
    End If

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!
aaa
09/07/10 13:25
HeDo
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 :)
aaa
09/07/10 13:29
alex89bari
Postato originariamente da HeDo:

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 09/07/10 13:30
aaa
09/07/10 14:06
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 ...
09/07/10 14:51
HeDo
Postato originariamente da nessuno:

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 :)
aaa