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
Offline CheckCode:Imports System.Management Imports System.Net
Die Function um die CPUID auszilesen
Die Offline Check MethodeCode: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 Online Check MethodeCode: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
Der Form_loadCode: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
hr Könnt um Die HWID auszulesen Diesen Code Benutzen :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
Gebraucht Wird: Eine textbox ,ein Button und dieser Code
Ihr ruft das ganze mit dem Button aufCode: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
Wichtig ist auch das Ihr nicht "Nur" die CPUID benutzt sondern EineCode:Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click TextBox1.Text = GetProcessorId() End Sub
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


Zitieren


