Hardware ID (HWID) Protection V2 Offline/Online Tutorial/FAQ

    • VB.NET

    Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von DercLx.

      Hardware ID (HWID) Protection V2 Offline/Online Tutorial/FAQ

      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 :D

      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).

      DownloadProjekt
      HWIDSAMPLE

      Hier nochmal In text Form

      Zuerst 2 Imports

      VB.NET-Quellcode

      1. Imports System.Management
      2. Imports System.Net

      Offline Check

      Die Function um die CPUID auszilesen

      VB.NET-Quellcode

      1. Friend Function ProcessorId() As String
      2. Dim strProcessor As String = String.Empty
      3. Dim query As New SelectQuery("Win32_processor")
      4. Dim search As New ManagementObjectSearcher(query)
      5. Dim info As ManagementObject
      6. For Each info In search.Get()
      7. strProcessor = info("processorId").ToString()
      8. Next
      9. Return strProcessor
      10. End Function


      Die Offline Check Methode

      VB.NET-Quellcode

      1. Public Function HWIDOfflineCHECK()
      2. Dim HWID As String = ProcessorId()
      3. 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
      4. 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 ;)
      5. Else
      6. MsgBox("Nicht Erlaubter Zugriff")
      7. Application.Exit()
      8. End If
      9. End Function


      Die Online Check Methode

      VB.NET-Quellcode

      1. Public Function HWIDOnlineCHECK()
      2. Dim HWID As String = String.Empty
      3. Dim check As New ManagementClass("win32_processor")
      4. Dim managment As ManagementObjectCollection = check.GetInstances()
      5. For Each mo As ManagementObject In managment
      6. If HWID = "" Then
      7. HWID = mo.Properties("processorID").Value.ToString()
      8. Exit For
      9. End If
      10. Next
      11. Dim schutz As String
      12. schutz = HWID
      13. Dim webb As New WebClient
      14. Dim strings As String
      15. Try
      16. strings = webb.DownloadString("Hier euer ftp server mit dem link zur HWID.txt")
      17. webb.Dispose()
      18. If strings.Contains(schutz) Then
      19. Else
      20. MessageBox.Show("Nicht Erlaubter Zugriff! #1")
      21. Application.Exit()
      22. End If
      23. Catch
      24. MessageBox.Show("Nicht Erlaubter Zugriff! #2")
      25. Application.Exit()
      26. End Try
      27. End Function


      Der Form_load

      VB.NET-Quellcode

      1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      2. ' so im FormLoad kommt dann entweder die Function "HWIDOfflineCHECK" Oder eben "HWIDOnlineCHECK" ich nehme hier jetzt mal offline
      3. HWIDOfflineCHECK()
      4. End Sub

      Ihr Könnt um Die HWID auszulesen Diesen Code Benutzen :
      Gebraucht Wird: Eine textbox ,ein Button und dieser Code

      VB.NET-Quellcode

      1. Friend Function GetProcessorId() As String
      2. Dim strProcessorId As String = String.Empty
      3. Dim query As New SelectQuery("Win32_processor")
      4. Dim search As New ManagementObjectSearcher(query)
      5. Dim info As ManagementObject
      6. For Each info In search.Get()
      7. strProcessorId = info("processorId").ToString()
      8. Next
      9. Return strProcessorId
      10. End Function

      Ihr ruft das ganze mit dem Button auf

      VB.NET-Quellcode

      1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      2. TextBox1.Text = GetProcessorId()
      3. 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.


      Bei Fragen/Anregungen ,Postet es einfach hier ;)
      Viel Spaß beim Basteln :thumbsup:

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „politoxy“ ()

      In dem du die grafikkarten serial oder ähnlich per wemi ausliest daraus ne funktion machst und sie dnn im formload callst
      jetzt zb siehts so aus
      :ProcessorId (und wenn du ne graka funktion hast schreibste einfach)
      ProcessorId () + Grafikk ()
      so kannste dann ne mischung aus grafik und cpu anzeigen lassen
      Grafikkarte.

      Setze einfach das, statt der ProcessorId Funktion ein:

      VB.NET-Quellcode

      1. Friend Function ProcessorId() As String
      2. Dim strProcessor As String = String.Empty
      3. Dim query As New SelectQuery("Win32_VideoController")
      4. Dim search As New ManagementObjectSearcher(query)
      5. Dim info As ManagementObject
      6. For Each info In search.Get()
      7. strProcessor = info("DeviceId").ToString()
      8. Next
      9. Return strProcessor
      10. End Function


      Ja ich hab den namen der Funktion gleich gelassen damit ja keine Fehler auftreten.
      Und diese Methode ist nur für den Offline gebrauch. Wenn ihr sie Online benutzen wollt fügt einfach Win32_VideoController bzw. DeviceId ein

      Beitrag als Hilfreich einstufen nicht vergessen ;D
      PS: Soundkarte mach ich jetzt nicht , das könnt ihr Selber herausfinden ;D
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      Danke dir, hat super funktioniert, bin vorhin auch über den WMI Code Generator gestolpert und habe den rest auch geschafft.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hal2000“ () aus folgendem Grund: Fast-Vollzitat entfernt

      @Gather:
      Hmmm... also bei mir funktioniert das so nicht! Wenn ich die DeviceId der GraKa abfrage, dann bekomme ich als Antwort "VideoController1" und bei der DeviceId der Soundkarte etwas, das so aussieht:
      HDAUDIO\FUNC_01&VEN_8384&DEV_7690&SUBSYS_102801CE&REV_1022\4&B1E9B9E&0&0001

      Was mache ich denn da falsch? Bzw. wie bekomme ich eine eindeutige ID dieser beiden komponenten?

      Edit by hal2000:
      - Fullquote entfernt. Bitte in Zukunft vermeiden.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hal2000“ ()

      bla2006 schrieb:

      Was wenn der Käufer den Prozessor wechselt ?

      Funktion einbauen zur Neuanfrage einer Lizenz. Stimmt alles bis auf eines zusammen und der User weiß was es ist, dann hat er die CPU getauscht und die Lizenz wird wieder gültig. Just a possibility

      TheStoepsel schrieb:

      @Gather:
      Hmmm... also bei mir funktioniert das so nicht! Wenn ich die DeviceId der GraKa abfrage, dann bekomme ich als Antwort "VideoController1" und bei der DeviceId der Soundkarte etwas, das so aussieht:
      HDAUDIO\FUNC_01&VEN_8384&DEV_7690&SUBSYS_102801CE&REV_1022\4&B1E9B9E&0&0001

      Was mache ich denn da falsch? Bzw. wie bekomme ich eine eindeutige ID dieser beiden komponenten?


      Es handelt sich bei ihm nicht um eine Ausnahme, ich habe das selbe Problem..
      Aber im Prinzip ist es egal, ihr könntet auch diese DeviceID nehmen (HDAUDIO\FUNC_01&VEN_8384&DEV_7690&SUBSYS_102801CE&REV_1022\4&B1E9B9E&0&0001)

      IM Prinzip!
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      iZotope schrieb:

      TheStoepsel schrieb:

      @Gather:
      Hmmm... also bei mir funktioniert das so nicht! Wenn ich die DeviceId der GraKa abfrage, dann bekomme ich als Antwort "VideoController1" und bei der DeviceId der Soundkarte etwas, das so aussieht:
      HDAUDIO\FUNC_01&VEN_8384&DEV_7690&SUBSYS_102801CE&REV_1022\4&B1E9B9E&0&0001

      Was mache ich denn da falsch? Bzw. wie bekomme ich eine eindeutige ID dieser beiden komponenten?


      Es handelt sich bei ihm nicht um eine Ausnahme, ich habe das selbe Problem..
      Wo ist da das Problem ? Das sieht wohl schwer nach einer DeviceId aus. Sei doch froh, dass sie so ausführlich ist.