Niemals nur die ProzessorID hashen....Dann können hinterher 30 Leute den nutzen, weil sie einen prozessor aus der selben serie haben...
man nimmt eig bios,mainboard und prozessor und nimmt den sha1 hash
1) Was meinst du mit Bios?
2) Wie kannst du das Bios auslesen?
3) Was meinst du mit Mainboard?
4) Wie kannst du das Mainboard auslesen?
Ja, ich weiß, was das Bios und ein Mainboard ist, aber was davon willst du verwenden und wie kommst du an diese Infos?
(Bessere Erklärung zu solchen Sachen währe gut, da diese Dinge nicht nur 1 Info enthalten bzw. besitzen, sondern mehrere)
Public Function GetHWID() As String
Dim stringBuilder As StringBuilder = New StringBuilder()
Try
Dim managementObjectSearcher As ManagementObjectSearcher = New ManagementObjectSearcher("root\CIMV2", "SELECT * FROM Win32_BIOS")
For Each managementObject As ManagementObject In managementObjectSearcher.Get()
stringBuilder.Append(managementObject("SerialNumber"))
NextCatch (managementException1 As ManagementException)
Dim managementException As ManagementException = managementException1
Console.WriteLine(String.Concat("An error occurred while querying for WMI data: ", managementException.Message))
End Try
Try
Dim managementObjectSearcher1 As ManagementObjectSearcher = New ManagementObjectSearcher("root\CIMV2", "SELECT * FROM Win32_OperatingSystem")
For Each managementObject1 As ManagementObject In managementObjectSearcher1.Get()
stringBuilder.Append(managementObject1("SerialNumber"))
NextCatch (managementException3 As ManagementException)
Dim managementException2 As ManagementException = managementException3
Console.WriteLine(String.Concat("An error occurred while querying for WMI data: ", managementException2.Message))
End Try
Dim sHA256CryptoServiceProvider As HashAlgorithm = New SHA256CryptoServiceProvider()
sHA256CryptoServiceProvider.Initialize()
Dim numArray As Byte() = sHA256CryptoServiceProvider.ComputeHash(Encoding.Unicode.GetBytes(stringBuilder.ToString()))
Dim str As String = BitConverter.ToString(numArray)
str = str.Replace("-", String.Empty)
str = str.ToLower()
Return str
End Function
Private Function getHWID() As String
Return MD5CalcString(GetProcessorId() + "-" + GetVolumeSerial() + "-" + GetMotherBoardID())
End Function
Private Function MD5CalcString(ByVal strData As String) As String
Dim objMD5 As New System.Security.Cryptography.MD5CryptoServiceProvider
Dim arrData() As Byte
Dim arrHash() As Byte
arrData = System.Text.Encoding.UTF8.GetBytes(strData)
arrHash = objMD5.ComputeHash(arrData)
objMD5 = Nothing
Return ByteArrayToString(arrHash)
End Function
Private Function ByteArrayToString(ByVal arrInput() As Byte) As String
Dim strOutput As New System.Text.StringBuilder(arrInput.Length)
For i As Integer = 0 To arrInput.Length - 1
strOutput.Append(arrInput(i).ToString("X2"))
Next
Return strOutput.ToString().ToLower
End Function
Friend Function GetProcessorId() As String
Dim strProcessorId As String = String.Empty
Dim query As New SelectQuery("Win32_processor")
Dim search As New ManagementObjectSearcher(query)
Dim info As ManagementObject
For Each info In search.Get()
strProcessorId = info("processorId").ToString()
Next
Return strProcessorId
End Function
Friend Function GetVolumeSerial(Optional ByVal strDriveLetter As String = "C") As String
Dim disk As ManagementObject = New ManagementObject(String.Format("win32_logicaldisk.deviceid=""{0}:""", strDriveLetter))
disk.Get()
Return disk("VolumeSerialNumber").ToString()
End Function
Friend Function GetMotherBoardID() As String
Dim strMotherBoardID As String = String.Empty
Dim query As New SelectQuery("Win32_BaseBoard")
Dim search As New ManagementObjectSearcher(query)
Dim info As ManagementObject
For Each info In search.Get()
strMotherBoardID = info("SerialNumber").ToString()
Next
Return strMotherBoardID
End Function
mac nutzen ist in vielerlei hinsicht sehr suboptimal, zb. ich hab an meinem pc zwei ethernet ports und nutze manchmal noch nen wlan stick, dann könnte ich die software nur nutzen wenn ich den netzwerkadapter nutze den ich bei der installtion verwendet hab
@heaven, die mac adresse ist idr hardcoded, jedoch kann die mac adresse wirklich mit leichtigkeit und ohne vorkenntnis gespoofed werden
mac nutzen ist in vielerlei hinsicht sehr suboptimal, zb. ich hab an meinem pc zwei ethernet ports und nutze manchmal noch nen wlan stick, dann könnte ich die software nur nutzen wenn ich den netzwerkadapter nutze den ich bei der installtion verwendet hab
@heaven, die mac adresse ist idr hardcoded, jedoch kann die mac adresse wirklich mit leichtigkeit und ohne vorkenntnis gespoofed werden
Mein Fehler, nutze das Snippet selber nicht und es ist auch schon etwas älter, wäre mir gar nicht aufgefallen.
HWID Generator & Dev-Tools für e*pvp's HWID System 01/28/2011 - Main - 0 Replies Hier die Downloads passend zum News-Thread, da das Attachen von Daten an News-Threads nicht möglich ist ;)
News-Thread:
http://www.elitepvpers.com/forum/e-pvp-news-de/981 343-hwid-system-f-r-entwickler.html
Credits für den 2. Generator gehen an Anfang!
Lg,
Ende!