Facebook Button Twitter Button YouTube Button RSS Button

IT-Runde

Autoit – Programme mit Registrierung

  • Autoit - Programme mit Registrierung

    Auch mit Autoit kann man Programme bzw. Tools erstellen, die man vertreiben kann. Genauso hat man das Problem, sich zu überlegen, wie schütze ich das Programm. Ein effektiver Schutz ist definitiv nie möglich, Cracker haben die Eigenart, immer einen Weg zum Umgehen von Schutzmassnahmen zu finden.Allerdings können wir versuchen es den Cracker`n etwas schwerer zu machen und den “normalen” Käufern es auch versalzen einfach das Programm weiter zu geben.

    Als erstes habe ich mir überlegt, wie machen es die anderen, liegt nahe den ich bin ja nicht der erste Entwickler, der so etwas machen möchte. In den meisten Programmen wird mit einem Lizenzschlüssel gearbeitet, entweder nur mit einem Schlüssel oder die Verbindung von Benutzernamen und einen daraus resultierenden Schlüssel. Andere Programme verschicken eine Lizenzdatei, welche über das Programm eingespielt wird oder einfach in den Programmordner kopiert wird. In neueren Programmen wird auch eine Aktivierung über das Internet durchgeführt, was ich persönlich doof finde. Ich habe mich für die Lizenzierung mittels Benutzernamens, alternativ über eine Lizenzdatei entschieden.

    Hier nun die Vorgehensweise, man kann es so machen und sollte für die meisten wohl ausreichend sein. Ich beziehe mich hier auf eine Einbindung in ein Autoit Programm, wie unschwer im Video unten zu sehen ist, allerdings lässt es sich auch auf andere Programmiersprachen übertragen.

    Die Register – Datei

    Diese Datei ist in meinem Fall eine .AU3-Datei, mit dem schönen Namen register.au3. Hier drinnen habe ich die Funktionen geschrieben, die für die Überprüfung der Lizenzdaten erforderlich sind und auch die Lizenzdatei erzeugen können wenn man es über das eigentliche Programm, mittels Lizenzschlüssels registriert.
    Ein wesentlicher Punkt sind hier die Einbindung einer dritten Datei, der MD5Hash.dll, diese kann MD5 Hashes erzeugen, die wir zum validieren unseren Lizenzschlüssels benötigen.
    Ein zweiter wichtiger Punkt ist der Masterkey, dieser ist eine Zahl, welche frei wählbar ist und vom Hauptprogramm an die register.au3 übergeben wird. Der Zweck für diesen Key wird ersichtlich wenn man sich die Funktion zur Generierung des MD5 Hashes ansieht.

    Die Funktion zur Generierung

    Hier werden zwei Werte an die Funktion übergeben, einmal der Name des Kunden, zum anderen der Key, den der User eingegeben hat. Nun beginnt die Berechnung des Hashes, ich nehme den Namen und wandele jedes einzelne Zeichen in ASCII Code um, multipliziere diesen Wert mit den Masterkey und hänge es an eine Variable. Wenn ich das mit allen Zeichen gemacht habe, habe ich eine Variable die sehr lang sein kann. Diese Variable lasse ich nun in einen MD5 Hash umwandeln und vergleiche es mit dem Schlüssel, den der Kunde eingegeben hat. Stimmen die Werte überein, wird von der Funktion TRUE zurück gegeben, ansonsten FALSE.

    Die Funktion zur Erstellung der Lizenzdatei

    In meinen Beispiel habe ich die Datei reg.ini genannt, diese hat nur die Werte Name und Key. In Autoit ist es recht einfach eine INI Datei zu schreiben, einfach Iniwrite(“DATEINAME”,”BEREICH”,”SCHLÜSSEL”,”WERT”). Die Werte werden an die Funktion übergeben, erst der Name, gefolgt von dem Schlüssel.

    Dann gibt es noch eine kleine Funktion, die für den Endladung der MD5Hash.dll Datei zuständig ist.

    Das eigentliche Programm

    In dem eigentlichen Programm habe ich kleine Zusätze eingebaut, da ich ja prüfen muss ob der Kunde das Programm bereits registriert hat und falls nicht, welche Einschränkungen ich aktivieren will.
    Im ersten Bereich, am Anfang des Programms, binde ich meine register.au3 ein und teile dieser mit, welchen Masterkey ich nutzen will. Im zweiten Schritt, prüfe ich, ob die Lizenzdatei bereits vorhanden ist. Falls ja, lese ich den Namen und den Schlüssel ein, übergebe diese Daten an die Funktion für die Prüfung des Schlüssels in meiner register.au3 Datei weiter. Den Rückgabewert speichere ich in einer Variablen.
    Nachdem die GUI erstellt wurde und bevor die While-Schleife, ist bei Autoit nun mal so, beginnt, rufe ich eine Funktion auf, um ggf. Einschränkungen vor zu nehmen, die in der Demo Version bestehen sollen.
    Die Funktion für die Einschränkung fällt je nach Einschränkungsumfang aus, in meinem Beispiel ehr klein, da ich nur einen Button deaktiviere, falls noch keine Registrierung durchgeführt wurde. Ist allerdings bereits die Registrierung durchgeführt worden, wird die Funktion sofort wieder verlassen.
    Für die Registrierung gibt es auch noch eine kleine Funktion, welche nichts anderes macht, als den Namen und eingegebenen Schlüssel an die entsprechende Funktion in der register.au3 zu übergeben.

    Wie bereits erwähnt, ist dieses Beispiel auf Autoit ausgelegt, wer sich näher über Autoit informieren möchte, kann dieses über die Seite www.autoitscript.com machen oder sich auch mal meine anderen Autoit Videos ansehen.

    Video



  1. #1 MK
    17.11.2009 um 20:33 Uhr

    von verschlüsseln halt ich mal so gar nichts weil bringt nichts und behindert den eigentlich benutzer. und dann ein schlüssel für jedes kleine kack programm dann kommt auch der editor irgendwann durcheinander

    Post ReplyPost Reply
  2. #2 Jens
    17.11.2009 um 21:47 Uhr

    OK,
    Punkt 1, wenn Du dir das Video angesehen hättest, dann wäre dir aufgefallen, das es eine Anfrage war.
    Punkt 2: Das Programm soll als DEMO laufen, gekauft werden, was soviel bedeutet, wie, es verdient jemand damit seinen Unterhalt und will nicht, das es so verteilt wird.
    Punkt 3: Der wichtigste, ich halte auch nichts davon das jedes Tool verschlüsselt wird, aber leider sind nicht alle Leute unbedingt vertrauenswürdig.

    Jens

    Post ReplyPost Reply
  3. #3 globe
    18.11.2009 um 18:22 Uhr

    Sehr nett geschrieben. Benutze selbst AutoIT um kleine Programme bzw Makros zu schreiben und verbreite die auch über ein Forum. Und solange die Verschlüsselung hilft damit es dem “Feind” nicht in die Hände fällt finde ich es gut.

    Post ReplyPost Reply
  4. #4 Jens
    19.11.2009 um 07:44 Uhr

    Hm, welches Forum?

    Post ReplyPost Reply
  5. #5 ubuntu
    22.11.2009 um 14:16 Uhr

    kann man das auch irgendwo runterladen?

    Post ReplyPost Reply
Kommentar schreiben

* Die Checkbox für die Zustimmung zur Speicherung ist nach DSGVO zwingend.

Ich stimme zu.