Credits gehen nicht an mich, sondern an politoxy!
So da es wohl einige Interessiert mache ich mal ein Kleines Tutorial oder eine FAQ dazu.
Es ist mein Erstes Tut hier also seit nicht Zu hart mit mir
Erstmal Die Wichtigsten Fragen)
F.)Was ist HWID und warum Wird es Benutzt?
A.)HWID Bedeuted Hardware ID ,dies ist eine Einmalige ID aus bestimmten Hardware Komponenten eures PC´s
Es wird Benutz Um ein Programm das ihr zb Kommerziell nutzen wollt zu schützen so das es nur auf dem Pc des Käufers ausgeführt werden kann.
F.)Offline? Online? was hat das zu Bedeuten?
A.)Man kann die HWID entweder Offline Prüfen (es wird Praktisch Hardcodet in die Source eingefügt),oder Online Per txt,phpscript (Auf FTP) oder mysql Datenbank (es wird Logischerweise eine internet verbindung des Käufers Benötigt)
Ich habe für euch Ein Beispiel Projekt erstellt wo es Um offline und online Überprüfung geht,dort wird jedoch nur die CPUID benutzt und bei der Online Prüfung wird nur eine txt benutzt (dies ist sehr unsicher aber um das grund Prinzip zu verstehen Reicht es).
Download Project
Hier nochmal In text Form
Zuerst 2 Imports
Code:
Imports System.Management
Imports System.Net
Offline Check
Die Function um die CPUID auszilesen
Code:
Friend Function ProcessorId() As String
Dim strProcessor 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()
strProcessor = info("processorId").ToString()
Next
Return strProcessor
End Function
Die Offline Check Methode
Code:
Public Function HWIDOfflineCHECK()
Dim HWID As String = ProcessorId()
If HWID = "HIER DIE HWID DES KUNDEN" Then 'WEnn ihr eine Oflline abfrage macht ,Müsst ihr für Jeden Kunden die HWID hier eintragen
MsgBox("Vielen Dank das sie sich Für Mein Programm Enstschieden haben") ' mir ist da grad nix besseres eingefallen ^^ ihr könnt aber die msgbox bei richtiger hwid weglassen ;)
Else
MsgBox("Nicht Erlaubter Zugriff")
Application.Exit()
End If
End Function
Die Online Check Methode
Code:
Public Function HWIDOnlineCHECK()
Dim HWID As String = String.Empty
Dim check As New ManagementClass("win32_processor")
Dim managment As ManagementObjectCollection = check.GetInstances()
For Each mo As ManagementObject In managment
If HWID = "" Then
HWID = mo.Properties("processorID").Value.ToString()
Exit For
End If
Next
Dim schutz As String
schutz = HWID
Dim webb As New WebClient
Dim strings As String
Try
strings = webb.DownloadString("Hier euer ftp server mit dem link zur HWID.txt")
webb.Dispose()
If strings.Contains(schutz) Then
Else
MessageBox.Show("Nicht Erlaubter Zugriff! #1")
Application.Exit()
End If
Catch
MessageBox.Show("Nicht Erlaubter Zugriff! #2")
Application.Exit()
End Try
End Function
Der Form_load
Code:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' so im FormLoad kommt dann entweder die Function "HWIDOfflineCHECK" Oder eben "HWIDOnlineCHECK" ich nehme hier jetzt mal offline
HWIDOfflineCHECK()
End Sub
hr Könnt um Die HWID auszulesen Diesen Code Benutzen :
Gebraucht Wird: Eine textbox ,ein Button und dieser Code
Code:
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
Ihr ruft das ganze mit dem Button auf
Code:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox1.Text = GetProcessorId()
End Sub
Wichtig ist auch das Ihr nicht "Nur" die CPUID benutzt sondern Eine
mischung aus Verschiedenen Festen Werten wie zb der CPU
,Mainboard,Grafikkarte das könnt ihr dann noch in einen Hash oder per Rc4 verschlüsseln.
MfG
Th3_Cr4xX