HWID-Abfrage System mit HWID:HWID

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von UltraZz.

    HWID-Abfrage System mit HWID:HWID

    Hi,ich möchte ein "Login" System machen,das die HWID checkt. Diese stehen auf eine Pastebin Seite (ja ich weiß das das unsicher ist) getrennt mit einem Doppelpunkt also so: HWID1:HWID2.
    Ich habe schon folgendes versucht,aber es hat leider nicht geklappt. Wäre nett wenn mir jemand sogen könnte wo der Fehler liegt,damit ich mich verbessern kann^^

    Imports System.Net
    Imports System.IO
    Public Class Form1
    Private Const Hwidz As String = "Pastebin Link mit HWID:HWID"
    Private wc As WebClient
    Function GetHwId()
    Dim HardwareId As String = System.Security.Principal.WindowsIdentity.GetCurrent.User.Value
    Return HardwareId
    End Function
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    CheckHwId
    End Sub
    Sub CheckHwId()
    Dim HWIDS As String() = wc.DownloadString(Hwidz).Split(Environment.NewLine)
    TextBox1.Text = Hwidz.Split(":")(0)
    If TextBox1.Text = GetHwId() Then okuser()
    TextBox1.Text = Hwidz.Split(":")(1)
    If TextBox1.Text = GetHwId() Then okuser()

    TextBox1.Text = Hwidz.Split(":")(1)
    If TextBox1.Text = GetHwId() Then okuser()
    End Sub

    Sub okuser()
    MsgBox("HWID korrekt")
    End Sub
    End Class
    Hallo,

    erst einmal wäre es hilfreich den Code in Code-Tags einzurahmen, damit das Zeugs lesbar wird.
    System.Security.Principal.WindowsIdentity.GetCurrent.User.Value bringt Dir Computername\Benutzername. eine HW ID ist für mich was anderes.
    Der ganze Code ist schrott, aber debuggen kannst den auch selbst. Damit würdest Du Dich verbessern, weil bisher bestand Deine Leistung ja eh nur im Copy&Paste.

    Sieh Dir aber erst einmal an, wie Du Dein VS korrekt einstellst, da gibt es auch Hilfen zu im Forum.
    Du hast deinen Webclient nicht instanziert. Wenn du nun auf die Varable wc zugreifst solltest du eine NullReferenzException bekommen. Du musst dir also erst eine neue Instanz eines WebClients erstellen.

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

    @Dksksm: Wenn ich bei mir das mit dem System.Security.Principal.WindowsIdentity.GetCurrent.User.Value ausgeben lasse, dann kommt da kein Computername\Benutzer sondern eine etwas längere Zahlenfolge mit Bindestriche.
    Hab mal nach HWID auslesen in VB.NET gegoogel: Biosnummer und Hardware Id auslesen

    @UltraZz: Das was du gepostet hast, ist höchstens noch VB6:
    1.) Funktionen ohne Rückgabewert
    2.) MsgBox - ernsthaft? wirklich?
    3.) Methodenaufruf ohne Klammern (siehe Zeile 7: GetCurrent ist eine Methode und keine Property - VB.NET nimmt das aber leider an.
    Lg Radinator
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    @Radinator Ich habe halt nicht den Code aus dem Programm genommen,sonder das ganze in ein neues Projekt kopiert und es ein bisschen umgeschreiben,deßhalb auch die MsgBox. Doch GetCurrent funktioniert,der Code wird auch angegeben das Problem liegt im Teil der Abfrage von der Seite,nicht im Teil wo der Code ausgelesen wird.

    Dksksm schrieb:

    erst einmal wäre es hilfreich den Code in Code-Tags einzurahmen, damit das Zeugs lesbar wird.

    Es wird schon wieder ignoriert ! Das ist zum <X !

    Gute Arbeit @ Moderation ;)

    UltraZz schrieb:

    Ich habe halt nicht den Code aus dem Programm genommen,sonder das ganze in ein neues Projekt kopiert und es ein bisschen umgeschreiben,deßhalb auch die MsgBox
    Copy&Paste also...verstehe. Nur aus wechem Projekt hast du den Code her?

    UltraZz schrieb:

    Doch GetCurrent funktioniert
    Ääää...ja? Hab ich doch geschrieben:

    Radinator schrieb:

    GetCurrent ist eine Methode und keine Property - VB.NET nimmt das aber leider an
    Mir geht es ja auch nur darum, dir zu zeigen/sagen, dass das Kein guter Stil ist. Wenn du iwann mal das ganze in C# umwandelst, dann wirst du gezwungen sein die Klammern zu verwenden. Ansonsten weigert sich der Compiler das zu übersetzen.

    UltraZz schrieb:

    das Problem liegt im Teil der Abfrage von der Seite,
    Was steht denn in dem Ergebnis der Abfrage von der Seite?

    Fakiz schrieb:

    Du hast deinen Webclient nicht instanziert.


    UltraZz schrieb:

    das Problem liegt im Teil der Abfrage von der Seite,
    Hast du das hier schon mal in Betracht gezogen?

    Bzw: Was genau passiert denn? Ich nehme mal folgendes an: Das ganze lässt sich kompilieren, nur wenn du dann im laufenden Betrieb den Button klickst, dann schmiert dir das Programm mit einer Fehlermeldung ab. Wenn ja, dann schau mal ein paar Zeilen hoch, ansonsten: beschreibe was genau passiert. Vielleich kann dir dann geholfen werden.
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Habs mal etwas überarbeitet...

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Function GetHwId()
    2. Return System.Security.Principal.WindowsIdentity.GetCurrent.User.Value
    3. End Function
    4. Sub CheckHwId()
    5. ' Keine Ahnung warum du einen String downloadest und aufteilst wenn du damit nichts weiter machst.
    6. 'Dim HWIDS As String()
    7. 'Using wc As New WebClient
    8. ' HWIDS = wc.DownloadString(Hwidz).Split(Environment.NewLine)
    9. 'End Using
    10. Dim HwidzParts As String() = Hwidz.Split(":")
    11. If (HwidzParts.Length < 1) Then
    12. Exit Sub
    13. End If
    14. If (HwidzParts(0) = GetHwId() AndAlso HwidzParts(1) = GetHwId()) Then
    15. okuser()
    16. End If
    17. End Sub
    18. Sub okuser()
    19. MessageBox.Show("HWID korrekt")
    20. End Sub

    Radinator schrieb:

    @Dksksm: Wenn ich bei mir das mit dem System.Security.Principal.WindowsIdentity.GetCurrent.User.Value ausgeben lasse, dann kommt da kein Computername\Benutzer sondern eine etwas längere Zahlenfolge mit Bindestriche.


    Merkwürdig, ich hatte den Code in ein altes Projekt eingefügt auf die schnelle und mir das Ergebnis mit ner MessageBox anzeigen lassen, da wars wirklich mein Rechnername und meine Anmeldecredentials.
    Ich habe das jetzt mal kurz in ein C# Projekt reingeworfen und dort wird mir die von Dir beschriebene ID gezeigt.
    Nun bin ich etwas irritiert. *shrugs*
    Bei mir wird, egal ob C# oder VB.NET, sowohl unter FW 4.5 als auch unter 2.0 jeweil diese Zahlenfolge mit Bindestrichte getrennt angezeigt
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell

    Fakiz schrieb:

    Habs mal etwas überarbeitet...

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Function GetHwId()
    2. Return System.Security.Principal.WindowsIdentity.GetCurrent.User.Value
    3. End Function
    4. Sub CheckHwId()
    5. ' Keine Ahnung warum du einen String downloadest und aufteilst wenn du damit nichts weiter machst.
    6. 'Dim HWIDS As String()
    7. 'Using wc As New WebClient
    8. ' HWIDS = wc.DownloadString(Hwidz).Split(Environment.NewLine)
    9. 'End Using
    10. Dim HwidzParts As String() = Hwidz.Split(":")
    11. If (HwidzParts.Length < 1) Then
    12. Exit Sub
    13. End If
    14. If (HwidzParts(0) = GetHwId() AndAlso HwidzParts(1) = GetHwId()) Then
    15. okuser()
    16. End If
    17. End Sub
    18. Sub okuser()
    19. MessageBox.Show("HWID korrekt")
    20. End Sub



    Das Programm teilt die URL,nicht die HWIDS die es auslesen sollte^^