Safe.dll - Lizenzcode-System

  • Beta

Es gibt 53 Antworten in diesem Thema. Der letzte Beitrag () ist von Nick33.

    Safe.dll - Lizenzcode-System

    Die safe.dll ist eine .dll zur erstellung und überprüfung von Lizenzcodes. Die Referenzcodes werden in einer Textdatei auf einem Server gespeichert. Im Programm muss eine 7 Stellige Zahlen-Kombination eingegeben werden, aus der dann ein Referenzwert gebildet wird, welcher mit dem Referenzwert auf dem Server abgeglichen wird. Ich weiß, das es nicht sehr sicher ist, es ist auch nur als Test für Algorythmen gedacht, aber ihr dürft es auch mal ausprobieren und eure Vorschläge einbringen!

    ANLEITUNG:

    Serials hinzufügen:

    Öffne die Datei 'safe.dll_KeyGen.exe'.
    Gebe eine beliebige, siebenstellige Nummer ein.
    Klicke auf 'Ausgabe'
    Jetzt wurden zwei Dateien erstellt:
    ->Eine 'gueltig4Cd78(!!).txt' auf dem Desktop
    ->Eine 'safe_serials.txt' in Dokumente

    Gebe weitere Nummern ein und füge so Serials hinzu.

    Wenn du fertig bist, lade die 'gueltig4Cd78(!!).txt' auf einen Webserver.
    Falls auf dem Webserver keine Website ist, füge eine Datei mit dem Namen 'index.php' hinzu.
    Schreibe folgendes hinein:

    PHP-Quellcode

    1. <?php
    2. echo 'Die Seite ist noch im Aufbau.';
    3. ?>


    Die Serials wurden nicht im Klartext in der Datei 'gueltig4Cd78(!!).txt' gespeichert. Um sie nachzulesen,
    öffne die Datei 'safe_serials.txt'. Vor dem Semikolon steht der Klartextserial, dahinter der verschlüsselte.

    Verwenden:

    Füge deinem vb-Projekt einen Verweis auf die safe.dll hinzu. Ziehe einen Button auf die Form und ändere die
    Text-Eigenschaft in 'Serial eingeben'. In das Button-Click Event füge folgenden Code ein:

    VB.NET-Quellcode

    1. Dim Schlüssel = InputBox("Serial:")
    2. Dim ergebniss As String
    3. Dim check As New WebClient
    4. ergebnis = safe.safe.Serial(Schlüssel)
    5. Dim gueltig As String = check.DownloadString("http://deineadresse.de/gueltig4Cd78(!!).txt")
    6. Dim str1 As String, str2 As String
    7. str1 = gueltig
    8. str2 = ergebnis
    9. If InStr(1, str1, str2) = 0 Then
    10. MessageBox.Show("Falsche Eingabe!")
    11. Exit Sub
    12. Else
    13. MessageBox.Show("Ihr Produkt wurde erfolgreich aktiviert!")
    14. End If
    15. End Sub

    Ersetze 'deineadresse' durch deine Web-Adresse.

    Teste es: Nach der eingabe eines richtigen Serials erscheint eine MessafeBox mit "Ihr Produkt wurde erfolgreich
    aktiviert!", bei einer falschen Eingabe "Falsche Eingabe!"

    Programmiert mit: Visual Basic .NET 2008 Express
    Benötigt Framework: 2.0, empfohlen 3.5

    Downloadlink: -Download eingestellt, bitte Thread lesen!-

    Bitte VB-Tag benutzen. MfG gs93

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Nick33“ ()

    Meinst du nicht, das es ehr eine unsichere Variante ist, die Lizenzcodes direkt in einer unverschlüsselten TXT auf dem Server zu speichern, denn wenn jmd. deine DLL oder das Programm deassembliert kommt er leicht an die Adresse der TXT und kann sich einfach die Codes downloaden.

    Keine PN's bezüglich VB an mich! Dafür gibt es das Forum!

    :Kreis hier. Kreis da.:

    Dann gib doch mal die Codes aus der Textdatei auf dem Server in das Programm ein, das wird nicht gehen^^ (Ich hab grad bemerkt, dass dann eine Fehlermeldung kommt, man muss zuerst noch prüfen, ob es überhaupt 7 Stellen sind)


    Die Keys kann man im Dokumente-Verzeichnis nachlesen. Die Datei zum Hochladen ist aufm Desktop. Ausserdem sind die Werte in der Datei zum hochladen nur 2-Stellig.
    Nja ist ja irgendwo auch ne Prüfsumme =)

    Ausserdem solltet ihr eure Vorschläge einbringen, dass man damit keinen goldenen Blumentopf gewinnt ist mir klar, und das niemand damit seine 300€-Programme schützen will auch.
    Vorschläge:
    a) Sichere die Datei auf dem Server irgendwie gegen nicht authentifizierten Abruf.
    b) Verschlüssele die Verbindung mit dem Webserver asymmetrisch.
    c) Benutze eine andere Prüfsummenmethode; wie auch immer deine aussieht, .NET hat Klassen dafür.
    d) Deine DLL sollte auch das Vergleichen selbst übernehmen.
    e) Du solltest irgendeine Form von Signatur in deine DLL einbauen, damit der Client zumindest eine minimale Möglichkeit hat, die Echtheit zu prüfen.
    Aktivierung is ne seeehr heikle sache.
    Vor allem haarig wirds bei serverseitigen Aktivierung.

    Ohne gute Verschlüsselung, .htaccess oder besser gleich ne Datenbank, SSL usw. wird das nix.

    Natürlich ist das ein Anfängerprojekt, und nicht von ner Firma voller Profis gemacht, aber gewisse Sicherheitsmaßnahmen muss das Ding auch treffen können.
    Das kann leider gar nix treffen :( Nebenbei ist es noch furchtbar umständlich. Du glaubs doch nich, dass einer wegen jedem Key das ganze macht.

    Außerdem würde mich interessieren: Wenn man nun 20 Keys will, wird das angehängt oder überschreibt der die Datei immer wieder?

    MfG
    Razer
    @ Razer:
    Die werden angehängt. Leute das war ne Sache von Knapp 10 Minuten, ich wollte euch jetz hier nicht das ultimative Lizenzcode-System geben, sowas könnte ich auch garnicht programmieren. Ihr könnt ja mal in meine Signatur gucken wo ich grad dabei bin. Ist MD5-Hash gut als Verschlüsselungsmethode?
    MD5 ist eine Hashsumme. Sprich es ist eine Sackgasse. Du kannst den errechneten Wert nicht wieder zurückrechenen (außer du benutzt Brutforce, Wörterbücher, Rainbowtabels - aber das dauert im Zweifel Jahre bis du den Hash geknackt hast). Das wär ja toll wenn man MD5 rückrechnen könnte. Dann bräuchten die Festplatten nur noch genug Platz um einen 32 stelligen String zu speichern.
    MD5 ist gut geeignet, um Sachen zu verschlüsseln, die man nicht wieder in Klarschrift braucht. So kann man z.B. Passwörter mit MD5 verschlüsseln und dann immer nur dei Eingabe ebenfalls verschlüsseln und dann mit dem vorhandenen Eintrag vergleichen. Aber in diesem Fall, wenn nur die Übertragung gesichert sein soll, nicht aber die Daten verschlüsselt gespeichert werden sollen, dann wäre wohl eine andere Verschlüsselungsmethode besser geeignet.