Questione : Richiamando il numero di serie reale del disco rigido ed in qualsiasi termine per qualsiasi azionamento duro

Ciao,

I using VB.NET in VS2005 e la prova ottenere il fornitore ha assegnato il numero di serie (unchangeable) del disco rigido. Userò questa identificazione per la protezione di distribuzione del mio numero di software.

The non dovrei essere il disco rigido VolumeSerialNumber del divisorio che può essere riassegnato da software methods.

I che lavora a questo problema per un periodo ed ha cercato alcune soluzioni che quella prima è “using WMI„ dal valore “Win32_physicalmedia„. Ma questo metodo restituisce il numero di serie come spazio in bianco per alcuni harddrives o per una certa configurazione del PC (non potrei trovare il motivo reale per esso sta agendo in tal modo ma sono fortunato scoprire che accade sul mio PC di sviluppo). Ci sono molti esempi differenti di WMI, per esempio il seguente;
---
Dim TheSearcher come ManagementObjectSearcher = nuovo

For di ManagementObjectSearcher (“SELECT * da Win32_PhysicalMedia„) ogni wmi_HD come ManagementObject nel
MessageBox.Show di TheSearcher.Get () (
Next
del wmi_HD (“SerialNumber"))---il
It restituisce una stringa vuota in mio PC, ma i ritorni il fornitore reale hanno assegnato la pubblicazione periodica una volta fatti funzionare ai miei colleghi PC's.

And il secondo metodo che ho trovato; Using CreateFile “da kernel32.dll„ api. È qualcosa di simile (non il codice completo dato qui perché l'esempio originale è lungo, appena per dare un'idea circa l'esempio);
---il
Private dichiara il movimento di liberazione “kernel32„ altrimenti detto “CreateFileA„ di CreateFile di funzione (lpFileName di ByVal come dwDesiredAccess di ByVal, della stringa come dwShareMode di ByVal, di numero intero come lpSecurityAttributes di ByVal, di numero intero come dwCreationDisposition di ByVal, di numero intero come dwFlagsAndAttributes come numero intero, ByVal di ByVal, di numero intero hTemplateFile come numero intero) come Integer

handle = CreateFile („ \ \. \ PhysicalDrive " & “0„, HDDID_GENERIC_READ + HDDID_GENERIC_WRITE, HDDID_FILE_SHARE_READ + HDDID_FILE_SHARE_WRITE, 0,

serialNumber =
rialNumber)/>model =
del
CloseHandle (maniglia) di HDDID_SwapChars (sco.IDS.ModelNumber)---il
It funziona per tutti i disc che ho, ma la funzione “di CreateFile„ non funziona una volta entrata con i privilegi amministrativi limitati (cioè entrato come cliente di utente limitato in Windows).

Is là del terzo metodo che funziona in tutte le circostanze? O un trucco da fare sopra gli esempi working.
class= del

Risposta : Richiamando il numero di serie reale del disco rigido ed in qualsiasi termine per qualsiasi azionamento duro

Abbiamo avuti questo genere di soggetto un certo mese/anno fa dove la conclusione era:
- Using più di 1 figura con una convalida di N-1/N può ridurre forte il supporto dell'autorizzazione
- Le figure possono venire pubblicazioni periodiche o numero di modello completo da: NIC, HDD, MB

Ex di una regola di convalida: Usare il MAC address della rete + il modello di HDD + il modello di GPU; convalidare l'autorizzazione ed aggiornare le figure di rinvio dell'autorizzazione se 2 di 3 sono validi (lo stesso MAC address + un HDD ha stesso di modello + lo stesso modello di GPU)
Il ==> in modo da il vostro utente “difettoso„ deve conoscere il MAC address e comprare l'esatto lo stessi HDD o GPU del licenziatario che aggiungono una certi complessità e prezzo reali alla pirateria
Altre soluzioni  
 
programming4us programming4us