Oppure

Loading
07/11/11 10:24
Renny
Ciao Ragazzi.
Vi chiedo un favore: ho scritto il seguente codice che dovrebbe mostrare il numero seriale dell'hardisk su cui sta girando l'applicazione.
Imports System.Management
Imports System.IO

Public Function GetSerialNumber(ByVal DriveLetter As String) As String
    DriveLetter = DriveLetter.TrimEnd(CChar("\"))
    Dim s As New ManagementObjectSearcher("select * from win32_diskdrive")
    Dim Code As String = ""
    For Each drive As ManagementObject In s.Get
         For Each part As ManagementObject In drive.GetRelated("Win32_DiskPartition")
             For Each mapping As ManagementObject In part.GetRelated("Win32_LogicalDisk")
                If mapping("Name").ToString = DriveLetter Then
                    For Each Media As ManagementObject In drive.GetRelated("Win32_PhysicalMedia")
                        If Media("SerialNumber").ToString = "" Then
                             Code = mapping("Name").ToString & " " & "None"
                        Else
                             Code = mapping("Name").ToString & " " & Media("SerialNumber").ToString
                        End If
                    Next
                End If
            Next
        Next
    Next
    Return Code
End Function

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
         MessageBox.Show(GetSerialNumber(Path.GetPathRoot(Application.ExecutablePath)))

        End
    End Sub

Vi chiedo semplicemente, per chi ha tempo e voglia, di provare a farlo girare e poi farmi sapere se funziona e se mostra il seriale. Vi chiedo questo perché sul mio PC ho WinXp ma ho letto in giro che con Win7 e sopratutto con Vista da dei problemi. Vi chiedo anche, se possibile, di fare un'ulteriore verifica confrontando il codice ottenuto con qualche programma di analisi dell'hardware (tipo everest, HwInfo32 ma ce ne sono altri...)
Mi basta sapere se va o oppure no..:k:
NB: bisognare referenziare System.Management
Ultima modifica effettuata da Renny 07/11/11 10:26
aaa
07/11/11 10:57
nessuno
Devi tenere presente che non tutti gli hard disk restituiscono il seriale.

Potresti avere dei malfunzionamenti del tuo sistema di protezione che non dipendono dal tuo programma ...

P.S. Funziona con Win7/64
Ultima modifica effettuata da nessuno 07/11/11 11:00
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à.
07/11/11 11:08
Renny
Intanto grazie per la risposta..
SI, ho letto che in alcuni casi gli hd non hanno il seriale.. Comunque al momento funziona a tutte le persone a cui ho chiesto.. Continuiamo con il benchmark e tra un po tireremo le somme.
PS: si accettano consigli e/o soluzioni alternative
aaa
07/11/11 11:10
nessuno
Guarda, premesso che non credo tanto a questi sistemi di protezione (se il programma in questione "interessa" veramente, viene comunque sprotetto ...), è più semplice gestire il MAC della scheda di rete ...
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à.
07/11/11 11:37
HeDo

sistemi di protezione software in .net lato client?

:grasserisate:
aaa
07/11/11 11:39
nessuno
Naturalmente si dà per scontato l'uso di un ottimo obfuscator ...
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à.
07/11/11 12:34
Renny
Si, mi rendo conto che la protezione assoluta non esiste.. Però.. Insomma, io credo che il 99% delle persone non ha proprio idea di come si fa a togliere le protezioni dalle applicazioni (faccio parte anche io di quel 99% :-|). E poi, l'applicazione che sto per finire è molto specifica, se la useranno in 20 persone è già tanto.. Non credo che tra queste 20 ci sia qualcuno in grado di manometterla. Certo, non voglio che il mio lavoro e il mio tempo vada "regalato", per questo voglio far si che l'applicazione funzioni solo sull'hardisk su cui è stata installata e attivata la prima volta. Pensavo appunto di farmi mandare il codice dell'HD (opportunamente criptato) e di usarlo per generare un codice di attivazione specifico per quell'HD che l'applicazione ad ogni avvio verifica.
Altri consigli? soluzioni?
Il MAC della scheda di rete lo potrei usare nel caso l'HD non abbia il serial..
PS: ok per l'obfuscator, quando sarò in fase di "pubblicazione" scriverò un thread per gli ultimi ritocchi..
Grazie
Ultima modifica effettuata da Renny 07/11/11 12:57
aaa
07/11/11 12:57
nessuno
Non dire al cliente di mandarti il codice dell'hd ... anzi non fare mai riferimento all'hd. E' l'installer che la prima volta deve generare un valore (abbastanza lungo e con un algoritmo non banale) a partire dal seriale. Ed è questo codice che il cliente deve inviarti.

L'obfuscator non è un optional ma una cosa necessaria. Altrimenti il tuo codice (con tutto quello che ne consegue) è leggibile.
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à.