[VB.NET Problem]HWID vergleich für Bot

02/16/2013 15:31 (=|=)NIKIBOY(=|=)#1
Ich habe ein Problem bei meinem Bot den ich für ein Spiel schreibe,
welches ich leider nicht so oft spielen kann wie ich möchte!

Ich möchte den Bot sichern damit nur die jenigen ihn verwenden
können denen ich es auch erlaube/denen ich vertrauen kann, damit
er nicht so schnell erkannt wird.

In diesem Teil des Codes soll der Bot die HWID Generieren und
diese vergleichen ob Sie in meiner Liste vorhanden ist!

Wenn die HWID vorhanden ist, wird der Bot gestartet.

Mit hilfe von:

Code:
Form1.Show()
Allerdings ist es dem Bot egal ob die HWID vorhanden ist oder nicht!

Also Startet er den Bot immer egal ob meine HWID im System registert
ist oder nicht.

Ich habe auch eine MD5 Hash funktion eingebaut damit niemand die
eindeutige Seriennummer des PC´s kennt. Diese Funktion funktioniert
ohne Probleme(bereits getestet).

Jetzt brauche ich hilfe: Warum wird die Form1 immer angezeigt, egal
ob die HWID vorhanden ist oder nicht!

Den Server den ich verwende (localhost) werde ich später bearbeiten aber
zum Testen ist es von Vorteil wenn alles auf meinem PC vorhanden ist.

Code:
Option Explicit On

Imports System.Net
Imports System.Text
Imports System.Threading
Imports System.Management
Imports System.Security.Cryptography

Public Class Form1

    Public Function MD5Hash(ByVal strString As String) As String
        Dim MD5 As New MD5CryptoServiceProvider
        Dim Data As Byte()
        Dim Result As Byte()
        Dim Res As String = Nothing
        Dim Tmp As String = Nothing

        Data = Encoding.ASCII.GetBytes(strString)
        Result = MD5.ComputeHash(Data)
        For i As Integer = 0 To Result.Length - 1
            Tmp = Hex(Result(i))
            If Len(Tmp) = 1 Then Tmp = "0" & Tmp
            Res += Tmp
        Next
        Return Res
    End Function

    Public Function get_hwid()
        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

    Public Function get_active_hwid()
        Dim schutz As String = Nothing
        Dim hash_schutz As String = Nothing
        schutz = get_hwid()
        hash_schutz = MD5Hash(schutz)
        Dim wc As New WebClient
        Dim server As String
        server = wc.DownloadString("http://localhost/hwid/hw.id")
        wc.Dispose()
        If server.Contains(hash_schutz) Then
            Return True
        Else
            Return False
        End If
    End Function

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Control.CheckForIllegalCrossThreadCalls = False
        Me.load_bot_settings()
        Me.Hide()
        get_active_hwid()
        If get_active_hwid() = True Then
            Me.Show()
            Form2.Hide()
        ElseIf get_active_hwid() = False Then
            Me.Hide()
            Form2.Show()
        End If

    End Sub

    Private Sub Form1_Closing(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.FormClosing
        SaveSetting("barmaniabotsettings", "BotSettings", "Mixing", GhostCheckbox1.Checked)
        SaveSetting("barmaniabotsettings", "BotSettings", "Shopping", GhostCheckbox2.Checked)
        SaveSetting("barmaniabotsettings", "BotSettings", "SaveUserdata", GhostCheckbox3.Checked)
        If GhostCheckbox3.Checked = True Then
            SaveSetting("barmaniabotsettings", "Userdata", "Username", GhostTextBox1.Text)
            SaveSetting("barmaniabotsettings", "Userdata", "Password", GhostTextBox2.Text)
        Else
            SaveSetting("barmaniabotsettings", "Userdata", "Username", "")
            SaveSetting("barmaniabotsettings", "Userdata", "Password", "")
        End If
    End Sub

    Private Sub load_bot_settings()
        GhostTextBox1.Text = GetSetting("barmaniabotsettings", "Userdata", "Username")
        GhostTextBox2.Text = GetSetting("barmaniabotsettings", "Userdata", "Password")
        GhostCheckbox1.Checked = GetSetting("barmaniabotsettings", "BotSettings", "Mixing")
        GhostCheckbox2.Checked = GetSetting("barmaniabotsettings", "BotSettings", "Shopping")
        GhostCheckbox3.Checked = GetSetting("barmaniabotsettings", "BotSettings", "SaveUserdata")
    End Sub
End Class
Ich hoffe mir kann jemand weiter helfen!

MfG: (=|=)NIKIBOY(=|=)
02/16/2013 16:03 Popicker#2
Ich bin mir nicht sicher wie es bei VB.NET ist, aber mach die Überprüfung ob die HWID korrekt ist nicht erst in der Form, sondern in der main methode die die form aufruft. So wird sie gar nicht erst gestartet.

Bei C# wäre das die program.cs und der static void Main Methode.
02/16/2013 16:07 Schlüsselbein#3
Erstmal, wozu das:
Code:
Control.CheckForIllegalCrossThreadCalls = False
In 99% der Fälle machst du irgendwas falsches, wenn du diese Zeile benötigst.

Zum Problem: Was sagt denn der Debugger? Schonmal durchgesteppt und geschaut, ob alle Rückgabewerte korrekt sind? Irgendwo muss ja falsch "abgebogen" werden und genau für solche Probleme wie deines gibt es ja Debugger.

Ausserdem ist
Code:
If get_active_hwid() [B]= True[/B] Then
doppelt gemoppelt.

Genauso das folgende ElseIf. Wozu? Wenn das Statement schon nicht true ist, _muss_ es ja false sein. Wozu der check?

Wenn der Rest des Bots genauso programmiert ist, wie der Schnipsel hier, dann sehe ich Schwarz.



Gruß
02/16/2013 16:20 (=|=)NIKIBOY(=|=)#4
Bei VB.NET ist die Form1.vb die Main leider gibt es keine program.vb
allerdings hast du mich auf eine Idee gebracht!

@ Schlüsselbein

Danke für die hinweise werde ich kontrollieren ich habe diese Zeile einmal benötigt allerdings habe ich dass Problem bereits beseitigt!

Werde gleich rückmeldung erstatten!
02/16/2013 16:23 Schlüsselbein#5
Es muss eine Main-Funktion in deinem Programm geben.

Neuer Vorschlag: Lass das mit der HWID. Dein "Bot" ist wahrscheinlich eh nur c&p-Dreck. Groß n Bot programmieren wollen, aber kein grundlegendes Verständnis für die Sprache haben.
02/16/2013 16:48 (=|=)NIKIBOY(=|=)#6
@ Schlüsselbein

Tut mir leid dass ich versuche selbst etwas zu Programmieren und
nicht sofort aufgebe nur wil jemand sagt, dass mein Bot C&P-Dreck
ist(Die HWID ist C&P, den Rest habe ich selbst geschrieben) ich werde
es dennoch weiter versuchen meinen Bot zu erstellen!

Du musst ihn ja auch nicht verwenden, am schluss verwende ihn doch ich!
Wenn ich etwas ändern möchte dann mache ich das, wenn nicht dann nicht.

Diese Funktion Baue ich ein um mein Wissen über die Programmiersprache zu
erweitern und nicht um C&P zu lernen!

Sonst würde ich nach einem fertigen Code fragen und nicht um hilfe beim
lösen des Problemes!

MfG: (=|=)NIKIBOY(=|=)
02/16/2013 17:15 tolio#7
du kannst selber definieren wo das programm starten soll, wenn du nichtmal ne c&p funktion einfügen kannst bezweifel ich sehr das dein richtiges programm wirklich irgendwas hergibt
02/16/2013 19:07 qkuh#8
Naund? Lasst ihn doch? LearningByDoing.

[Only registered and activated users can see links. Click Here To Register...]
02/16/2013 21:17 Popicker#9
Ich habe derzeit leider kein Visual Studio auf dem PC von daher kann ich gerade nicht nachgucken. Aber wenn du ein neues Windows Forms Projekt anlegst solltest du einmal deine Form1.vb ( oder so ) haben und noch eine andere Datei. Dort sollte dann auch die Main Methode drin sein die deine Form initialisiert und schließlich auch die Show Methode.

Ach und lass dich nicht von anderen beirren. Wenn du etwas programmieren möchtest dann mach das einfach und wenn du eine Frage hast dann stell sie einfach. Entweder es kommt eine Antwort oder nicht. Komische Kommentare einfach überlesen ;)
02/17/2013 20:23 (=|=)NIKIBOY(=|=)#10
Danke ich habe nun eine Main.vb angelegt und diese als erst ausführendes Objekt gewählt!
Aber es öffnet sich dennoch die Fom1.vb nicht.

@ Popicker

Danke für den hinweiß ich nehme deinen Rat an.

#EDIT

Ich habe es nun geschaft!

Ich habe den download der HWID und die überprüfung in eine
Try gepackt und in der catch Return False eingetragen nun
funktioniert es einwandfrei!

Habe wie oben genannt eine Class erstellt welche als Main Class startet
und in dieser ich die abrufungen starte einschließlich den HWID Check.

Ich werde mich Melden fals ich schwirigkeiten habe.

Danke für die Hilfe!
02/20/2013 18:16 Dorfman#11
Erstellt doch einfache eine HWID.txt in einem Dropbox account und lasst diese durch checken....
24/7 online
Einfache Methode

;)
02/21/2013 10:52 Graphicscore#12
1. Bitte , Bitte , Bitte lese dir erstmal ein paar Grundlegende Tutorials und/oder Bücher durch.
2. Bei deinem VB - Code sind sachen dabei wo ich mich frage was das überhaupt sein soll.
3. Der einfachste lösungsansatz wäre :
txt mit allen hwid's auf nen ftp (dropbox o.ä) dann diese txt mit hilfe von nem Webclient runterladen (und dann zb. in einer Richtextbox anzeigen) dann diese textbox zeilenweise durchegehn und schauen ob deine hwid dabei ist das alles ist natürlich nicht 100% optimal reicht aber für deine sachen und dann kannst du das gerne in ne function oder in nen sub packe und den Methodenaufruf musst du dann nur noch in das "Load" Event der Form reinpacken. Und wenn du damit jetzt nix anfangen kannst dann lese dir bitte erstmal das nötige Grundwisssen an.

Lg FeelingFree
02/21/2013 13:41 Kraizy​#13
Quote:
Originally Posted by FeelingFree View Post
1. Bitte , Bitte , Bitte lese dir erstmal ein paar Grundlegende Tutorials und/oder Bücher durch.
[...]
txt mit allen hwid's auf nen ftp (dropbox o.ä) dann diese txt mit hilfe von nem Webclient runterladen (und dann zb. in einer Richtextbox anzeigen) dann diese textbox zeilenweise durchegehn
Lass mich raten: die TextBox am besten noch mit Visible = False auf die Form klatschen :>

Bei so nem Müll solltest du lieber auch nochmal zu Schritt 1 gehen.
02/21/2013 16:03 tolio#14
Quote:
Originally Posted by Kraizy​ View Post
Bei so nem Müll solltest du lieber auch nochmal zu Schritt 1 gehen.
"Gehe zurück auf Los und ziehe keine 4000 Euro ein."


sry aber der musste sein :D
02/23/2013 01:11 (=|=)NIKIBOY(=|=)#15
Danke habe dieses Problem bereits gelöst!


Ich denke der Code ist vll nicht der sauberste,
aber er sollte ausreichen für dass was ich vor habe.

Bereits getestet und der Code funktioniert so weit melde
mich falls es weitere Probleme gibt.

MfG: NIKIBOY