Serialcodes sicher überprüfen!

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von MichaSDL0403.

    Serialcodes sicher überprüfen!

    Seid gegrüßt :=)

    Ich bin neu in der Visual Basic Programmierung und hänge (erstmal von der Logik an folgendem Problem):

    Ich möchte ein Programm mit einem Serialcode sichern. Jetzt habe ich im ersten Schritt einen Serialcode-Generator geschrieben.
    Dieser funktioniert auch.

    Im zweiten Schritt habe ich eine .txt Datei auf meinen Webspace geladen und lass beim Programmstart prüfen, ob der - vom Benutzer eingegebene - Code mit einem aus der .txt übereinstimmt.
    Das funktioniert ebenfalls.

    Jetzt kommen aber die Probleme, von denen ich nicht weis, wie ich sie lösen könnte:

    1. Nach meiner Methode müsste ein Benutzer bei JEDEM Programmstart den Serial erneut eingeben. Das ist natürlich dämlich.
    Ich hatte mir überlegt nach einer erfolgreichen ersten Serialeingabe eine .txt Datei lokal zu erzeugen in dem einkomm Wert (z.B True) steht. Dieser wird beim Programmstart überprüft. Existiert die Datei, wird die Seriennummer nicht erneut abgefragt.

    Der rießen Nachteil an der Sache ist aber, wenn einer herausfindet für was die .txt dort liegt, ist die ganze Serialcodegeschichte für die Katz.

    2. Ich möchte die Möglichkeit haben, einen Serialcode zu "blacklisten". Aber dafür müsste das Programm bei jedem Start mit dem Webserver kommunizieren aber wie stell ich das geschickt an? Evtl mit einer zweiten .txt, die im Internet liegt und bei erfolgreicher Eingabe beschrieben wird (mit dem aktuellen Serial) und wenn dieser schon existiert, gibts ne Fehlermeldung?

    3. Wenn die Serials als .txt im Internet liegen und ein Benutzer an den Pfad der Datei gelangt (z. B durch Scan oder Firewall), war die Serialgeschichte auch für die Katz.

    Gibts da ne Möglichkeit, dass besser zu regeln?

    4. Da man ja Softwarelücken (Sicherheitstechnisch) nicht ausschließen kann, will ich mir die Möglichkeiten offen halten, per Software"update", neue Komponenten nachzuladen und die alte zu deinstallieren.

    Das Nachladen funktioniert aber ich kann ja die laufende Anwendung nicht deianstallieren. Wie regelt ihr das?

    ---

    Ich hoffe das war nicht zuviel für meinen ersten Post.
    P.S: Eine funktionierende einfache Lösung ist mir (bei meinen momentan kaum vorhanden Programmierkenntnissen) lieber, als was total abgedrehtes was ich in Jahren nicht verstehe :=)

    liebe grüße

    Tubi Andrea
    Garkeine?

    WIe sieht mit einem passwortgeschützten Bereich auf der Seite aus in der die Datei liegt und im Programm sind die einlogdaten hinterlegt?
    Da würde der Benutzer ja nicht rankommen ....

    Und wie sieht es mit den anderen Problemschen aus? Ne Idee? *Lieb guck* :love:
    Du könntest die Datei auf dem Webspace theoretisch verschlüsseln, jedoch wäre da immer noch die Sache mit dem Dekompilieren.
    Die ganze Sache mit der Registrierung müsstest du also anders lösen.
    Du könntest einen Bereich auf deiner Webseite einrichten, auf dem sich die Benutzer registrieren können.
    Sollen sie Zugriff auf das Programm bekommen, kannst du sie freischalten. Im Programm muss der Benutzer dann seine Daten eingeben - welche natürlich gespeichert werden können.
    Das Programm verbindet sich mit dem Webserver und sieht nach, ob die Daten mit einem Benutzer übereinstimmen und falls ja, ob der Benutzer freigeschaltet ist.
    Das Ganze ist nicht komplett einfach zu realisieren... mit deinem derzeitigen Kenntnisstand könnte das schon ein kleines Problem werden.
    Außerdem wäre es noch gut, wenn du eine serverseitige Programmiersprache (Scriptsprache, whatever) wie z.B. PHP könntest.
    Ist dein Programm denn wirklich so wichtig, dass es ein Lizenzsystem benötigt?
    Nunja .... Ich glaub das ist eine relative Frage.

    Als Programmieranfängerin finde ich schon, dass es irgendwie "geschützt" werden sollte.

    Aber zum anderen muss ich gestehen, interessiert es mich einfach, wie ich sowas realisieren könnte.
    Dachte nicht, dass es so kompliziert wird.

    Nur wie sollte ich ansonsten meine geistigen Werke schützen Oo. Es soll ja nicht alles Freeware sein.
    Wenn es, bei meinem Wissen, noch nicht umzusetzen ist, werde ich es sein lassen ;(

    Oder es eben doch mit den 3x .txt Dateien regeln und hoffen, dass niemand mal auf die Idee kommt, genauer hinzusehen. Ansonsten bekomm ich einen Award als Programmiererin mit dem unnützigsten Sicherheitsystem
    So ein Lizenzsystem kann sehr kompliziert werden. Vor allem, wenn es sicher sein soll.
    Die meisten Programme (Photoshop etc.) werden schon in den ersten Tagen nach der Veröffentlichung geknackt...
    Klar. Speicher ihn einfach in einer Textdatei und überprüfe beim Programmstart, ob die Textdatei vorhanden ist und ob der Serial, der drin steht, korrekt ist.

    VB.NET-Quellcode

    1. Dim SerialDatei As String = "serial.txt"
    2. Dim KorrekterSerial As String = "1234-5678-abcd-efgh"
    3. If System.IO.File.Exists(SerialDatei) AndAlso System.IO.File.ReadAllText(SerialDatei) = KorrekterSerial Then
    4. ' Serial korrekt, mach etwas (Hauptformular öffnen etc.)
    5. End If
    Zum Speichern:

    VB.NET-Quellcode

    1. If TextBoxSerial.Text = KorrekterSerial Then
    2. System.IO.File.WriteAllText(KorrekterSerial)
    3. ' Serial korrekt
    4. End If
    Supi, dankeschön ^^

    Probier ich demnächst aus
    So, soweit läuft die Geschichte jetzt. Allerdings ist da noch das Problem mit der Blacklist.

    Wenn der Benutzer seinen Serialcode oder die .txt mit dem Serialcode weitergibt, hab ich noch keine Möglichkeit das zu überprüfen.

    Hab mir jetzt überlegt, dass beim Zugriff auf die Datei im Internet (um den Key zu überprüfen), hinter den jeweiligen Key eine Zahl oder Zeichen geschrieben wird und wenn die Zahl >= 3 bzw es >= 3 Zeichen hinter dem Key gibt, der Key gesperrt wird. Das heißt das Programm den Start verweigert und sich beenden, mit der Information sich an den/die Entwickler/in zu wenden.

    Ist das vom Konzept her gut? oder ist das ganze noch einfacher zu realisieren.

    P.S: Entschuldigt wenn die Fragen vielleicht ein wenig seltsam klingen, aber mein VB-Vokabular/Wissen ist noch nicht so ausgereigt, dass ich spezielle Klassen/Funktionen für bestimmte Anwendungsgebiete aus dem Kopf kenne :)


    Edit by Manschula: Bearbeiten-Funktion nutzen! --> Beiträge zusammengefügt

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

    Bilde doch einen String der aus deinem "Serial+PCName+Registrierungs Datum" besteht und besorg dir den MD5 Hash davon und dieser hash wird verglichen.Machen etliche groß anbieter genauso und wurde hier im Forum glaube ich auch schon mal besprochen. ;)
    Ist mir gerade durch die gedanken gelaufen eine Binärdatei als Registrierungsschlüssel.

    Zuerst beim Header (Dateikopf) eine Magische nummer zum identifizieren ob die Datei auch zum Programm gehört, wenn nicht, fehler ausgeben (falsche Datei) oder Checksum (Prüfsumme) wenn jemand versucht die Datei zu modifizieren aber die Prüfsumme nicht passt, fehler ausgeben.

    Dann in der Binärdatei mit Daten füllen. Es gibt manche Programme wo Lizenzschlüsseln per Binärdatei mit ürgendwelche Inhalten ein Programm zu einer Vollversion machen kann.

    Eventuell könnte man noch die Binärdatei verschlüsseln.

    WÄRE auch eine möglichkeit.