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
C# / VB.NET - [VB.NET] Lettura Seriale Hardisk
Forum - C# / VB.NET - [VB.NET] Lettura Seriale Hardisk

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 11:24
Lunedì, 07/11/2011
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.
Codice sorgente - presumibilmente VB.NET

  1. Imports System.Management
  2. Imports System.IO
  3.  
  4. Public Function GetSerialNumber(ByVal DriveLetter As String) As String
  5.     DriveLetter = DriveLetter.TrimEnd(CChar("\"))
  6.     Dim s As New ManagementObjectSearcher("select * from win32_diskdrive")
  7.     Dim Code As String = ""
  8.     For Each drive As ManagementObject In s.Get
  9.          For Each part As ManagementObject In drive.GetRelated("Win32_DiskPartition")
  10.              For Each mapping As ManagementObject In part.GetRelated("Win32_LogicalDisk")
  11.                 If mapping("Name").ToString = DriveLetter Then
  12.                     For Each Media As ManagementObject In drive.GetRelated("Win32_PhysicalMedia")
  13.                         If Media("SerialNumber").ToString = "" Then
  14.                              Code = mapping("Name").ToString & " " & "None"
  15.                         Else
  16.                              Code = mapping("Name").ToString & " " & Media("SerialNumber").ToString
  17.                         End If
  18.                     Next
  19.                 End If
  20.             Next
  21.         Next
  22.     Next
  23.     Return Code
  24. End Function
  25.  
  26. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  27.          MessageBox.Show(GetSerialNumber(Path.GetPathRoot(Application.ExecutablePath)))
  28.  
  29.         End
  30.     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 il 07/11/2011 alle 11:26


In attesa della fine del mondo, fissata per l'anno prossimo, sono alla ricerca di un notaio con cui fare testamento...
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 11:57
Lunedì, 07/11/2011
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 il 07/11/2011 alle 12:00


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 12:08
Lunedì, 07/11/2011
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


In attesa della fine del mondo, fissata per l'anno prossimo, sono alla ricerca di un notaio con cui fare testamento...
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 12:10
Lunedì, 07/11/2011
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 ...
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 12:37
Lunedì, 07/11/2011

sistemi di protezione software in .net lato client?

:grasserisate:


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 12:39
Lunedì, 07/11/2011
Naturalmente si dà per scontato l'uso di un ottimo obfuscator ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 13:34
Lunedì, 07/11/2011
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 il 07/11/2011 alle 13:57


In attesa della fine del mondo, fissata per l'anno prossimo, sono alla ricerca di un notaio con cui fare testamento...
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 13:57
Lunedì, 07/11/2011
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 ...
PM Quote
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 14:04
Lunedì, 07/11/2011
Si, chiaro.. Ma quindi si può gestire questa cosa del codice in fase di setup? Io pensavo di fare tutte le operazioni alla fine.. Magari con un'altra piccola applicazione che si occupa appunto di leggere il seriale dell'HD, il "nome" del proprietario a cui verrà assegnata la licenza, criptate tutto assieme e mostrare una stringa dicendo "ora invia questo codice all'indirizzo blabla@bla.it per ottenere un codice di attivazione valido".
Ovviamente la mia applicazione principale non funziona senza il codice di attivazione opportunamente salvato nel database...8-|


In attesa della fine del mondo, fissata per l'anno prossimo, sono alla ricerca di un notaio con cui fare testamento...
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo