sicherer Serialschutz in VB

  • Allgemein

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von kevin89.

    sicherer Serialschutz in VB

    Da ich mich in letzter zeit mal mit dem austricksen von Kopierschutzmaßnahmen in Programmen beschäftigt habe, wollte ich nun wissen, wie man so etwas (Serialschutz) nun am besten in VB realisiert. Denn wenn man dies durch eine einfache If-Then Abfrage macht, ist dies nicht sonderlich sicher, denn man könnte erstens mögliche Serials auslesen, oder die If-Abfrage überspringen. Nun würde ich gerne wissen, wie man die Überprüfung sicherer als mit If-Abfragen regeln kann?

    P.S. Ich hoffe ihr versteht, was ich meine. ;P

    MfG FlashTek
    ich würde dies mit einem eigenen SerialKeyGenerator machen->nach einem eigenen Algorithmus, welcher nat. möglichst kompliziert ist ;) diesen Algorithmus musst du dann natürlich noch vor Reflection schützen(mit einem Obfuscator z.B.)
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Also ich würde es einfach verschlüsseln und von einem, mit SSL gesicherten, Server den Serial abfragen. Natürlich alles mit einem Zufallsgenerator. Dieser sollte sich am besten auf dem Server befinden. Dann läuft nämlich alles über den Server.

    Aber SSL Zertifikate kosten leider eine Stange Geld. Zumindestens die guten.
    My-Image-Upload.de | Dein kostenloser unlimitierter Bilderhoster


    Bitte lesen bevor ihr unnötige Sachen posted: [VB 2008] wie log ich in diese seite ein? ... DANKE!
    Hallo....meine bevorzugte Methode ist die Koppelung der ProcessorId mit der Serial und Registrierung auf einen Web Server.
    Du mischt die Serial mit der Processor ID.....und lädst diesen String dann auf ein Textdokument auf z.B einem FTP Server hoch.
    Dann nur noch eine Sicherung das dies nur Funktioniert wenn die Serial noch nicht verwendet wird:-)

    DrVisualBasic schrieb:

    Hallo....meine bevorzugte Methode ist die Koppelung der ProcessorId mit der Serial und Registrierung auf einen Web Server.
    Du mischt die Serial mit der Processor ID.....und lädst diesen String dann auf ein Textdokument auf z.B einem FTP Server hoch.
    Dann nur noch eine Sicherung das dies nur Funktioniert wenn die Serial noch nicht verwendet wird:-)


    Und in diesem Fall würde ich den Server umleiten auf einen eigenen FTP Server der den Tool dann vorgaukelt ich hätte einen gültigen Serial.
    Möglichkeiten gibt es immer wobei ich diesen Vorschlag schon ganz gut finde :>
    lg Ich;
    Generell sind asynchrone Verschlüsselungen wie z.B. RSA in Kombination mit einem Webserver nicht schlecht. Beispiel:

    Das Programm sendet die eingebene Seriennummer mit einigen Hardwaredaten an den Server, der anschließend, wenn die Seriennummer in der Datenbank vorkommt, eine Lizenz-Datei generiert und lokal mit dem Private Key verschlüsselt. Diese gibt er an den Client zurück, der die Daten in eine Lizenz-Datei schreibt und mit dem Public Key mit den gesendeten Hardwaredaten verifiziert und diese ebenfalls lokal speichert. Optional können natürlich dabei Werte in der Datenbank auf dem Server geändert werden, z.B. die Zahl der Installationen gespeichert werden, sodass sich ein Limit an Installationen oder ähnliches implementieren lässt. Anschließend wird bei jedem Start nur noch die lokal vorliegende vom Server verschlüsselte Lizenzdatei mit den Hardwaredaten verifiziert, zudem werden die Hardwaredaten mit den vorliegenden vergleichen, womit simples kopieren auf andere PC's verhindert werden sollte. Auch Umleitung dürfte so unmöglich sein. Das Programm benötigt damit auch nur bei der Aktivierung eine Internetverbindung.

    War nur ein Gedanke, wenn einem darin eine Schwachstelle auffällt, was durchaus der Fall sein kann, bitte nennen.

    Gruß
    danke erstmal für eure Antworten, doch irgentwie wurde meine Frage dadurch nicht beantwortet. Denn wie ich die Generation der Serial aufbaue, weis ich schon längst, doch bei allen mir bekannten Lösungen, und auch denen geposteten, läuft es am Ende doch nur auf eine If-Then Abfrage hinaus. Gibts es denn keine anderen Möglichkeiten?

    MfG FlashTek
    Stimmt wohl. Im Endeffekt wird es auf eine If Abfrage hinauslaufen. Es liegt an dir wie sicher du die Abfrage, etc. machst. Beispiele haben wir hier genügend genannt.
    My-Image-Upload.de | Dein kostenloser unlimitierter Bilderhoster


    Bitte lesen bevor ihr unnötige Sachen posted: [VB 2008] wie log ich in diese seite ein? ... DANKE!
    ja schon klar, aber dann muss man eigentlich ja auch wieder if abfragen nutzen. Aber ist jetzt auch egal, habe das Problem gelöst.

    Kann geschlossen werden.

    Dardan schrieb:

    DrVisualBasic schrieb:

    und lädst diesen String dann auf ein Textdokument auf z.B einem FTP Server hoch.

    Und in diesem Fall würde ich den Server umleiten auf einen eigenen FTP Server der den Tool dann vorgaukelt ich hätte einen gültigen Serial.
    Oder einfach gleich auf den Originalserver drauf.. Daten stehn ja dann im Quelltext u. können mitgesnifft werden.

    My-Image-Upload.de schrieb:

    Aber SSL Zertifikate kosten leider eine Stange Geld. Zumindestens die guten.
    Unsinn, Zertifikate die von einer vertraulichen Quelle ausgestellt wurden kosten Geld. Je mehr geprüft wird (es gibt nur Überprüfung der E-Mail Adresse bis hin zur Identitätsprüfung) desto mehr kostet es. Kostenlose Zertifikate kann man sich selbst ausstellen (OpenSSL) oder bei CAcert beantragen, dann allerdings wird eine Warnung im Browser angezeigt.
    MfG

    kevin89 schrieb:

    War nur ein Gedanke, wenn einem darin eine Schwachstelle auffällt, was durchaus der Fall sein kann, bitte nennen.

    Naja..
    Ich denke die Schwachstelle darin liegt, dass man einfach nur die Überprüfung der Lizenz-Datei JMP'en, NOP'en oder whatever muss.

    Wenn man peinlich genau sein will, würde ich dein Lizenzsystem knacken (natürlich nur fiktiv), indem ich die Überprüfung der Internetverbindung NOP'e, dann guck ich mir die Routine zur Lizenz-Datei an und setze dann benötigte Vars auf nen Sollwert. Bam. Fertig.
    Das ganze ist natürlich viel schwerer, als es sich anhört. Und bei .Net-Apps nervt das Framework auch nen bisschen, da man z.B. ne MessageBoxA nicht gleich als User32-Call sondern mit noch ein paar "Umschreibungen" sieht. Unmöglich es allerdings mit einem gutem Debugger nie. Eine Kompression bring meist auch nicht wirklich was.

    Oder man könnte die Hostfile patchen und dann deinen Server emulieren (wie die das bei AC2 gemacht haben).

    Noch ne Möglichkeit wäre es, nen Lizenz-Datei-Generator für dein System zu machen. Man muss sich nur die Prüfroutine anschauen und "einfach" nen Generator bauen, der alle Kriterien erfüllt, die bei dir geprüft werden.

    Man sieht..
    Man kann alles(!) knacken. Es ist nie unmöglich. Außer man nutzt den Preprocessor bei der Erstellung einer Demoversion geschickt ;) (Das ist aber mainly C++)
    Von meinem iPhone gesendet
    Oder man könnte die Hostfile patchen und dann deinen Server emulieren (wie die das bei AC2 gemacht haben).
    Noch ne Möglichkeit wäre es, nen Lizenz-Datei-Generator für dein System zu machen. Man muss sich nur die Prüfroutine anschauen und "einfach" nen Generator bauen, der alle Kriterien erfüllt, die bei dir geprüft werden.

    Für beides ist doch die Kenntnis des Private Key's nötig. Ist also der Webserver sicher, sollte keines von beidem möglich sein.

    Aber natürlich, unknackbar ist nichts, und es gibt immer die Möglichkeit, am Speicher rumzuspielen... wie bereits gesagt aber, mit entsprechendem Aufwand.