Eindeutige Kennummer/Hardware ID herausfinden
-
Hi!
Ich habe mal gehört, dass Festplatten eine eindeutige ID haben, wodurch es ermöglicht wird, Lizenzen für Programme für ausschließlich einen PC zu spezifizeren (Bis dieser dann z.B. eine neue Festplatte mit einer neuen ID hat).Nun habe ich davon keine Ahnung und weiß auch nicht, ob es sich dabei wirklich um die Festplatte handelt oder was damit sonst gemeint ist.
Ich habe hier etwas gefunden, wo aber eher nach einer Alternative gesucht wird:
http://www.delphi-forum.de/topic_Windows+HardwareID+Hardware+hash+auslesen_73626.html&sid=9cdd65a4330bbe2b37500df31494e176Und hier im Forum stand etwas von WMI, womit ich bei Google und auf MS.com aber nur auf VB-Script Code gestoßen bin...
Deswegen wollte ich fragen,
ob es 1. überhaupt so etwas wie eine eindeutige, einzelne Hardware ID gibt (oder, ob das halt meistens z.B. die ID der Festplatte ist und es deswegen einfach verallgemeinert als "Hardware ID" bezeichnet wird etc., wobei mir das noch ziemlich egal wäre, Hauptsache, es gibt irgendeine eindeutige ID, die man für soetwas benutzen kann
und 2., ob denn jemand für mich einen Codeschnipsel oder einen guten Tipp hat,
da ich mal aus Spaß ein Programm schreiben wollte, das halt mit so Pseudolizenzen läuft, es also überprüft, ob der derzeitige PC irgendwo eingetragen ist.Vielen Dank!
-
Lokal kann alles gefälscht werden.
-
Ich weiß.
Aber man kann ja auch vom Bestfall ausgehen
bzw. möchte ich ja nur wissen, wie's geht, und nicht, was für Vor-/Nachteile enstehen, und was das überhaupt bringt
-
Sowas bringt dir nur was, wenn der Anwenderkreis klein ist und es unwarscheinlich ist, daß dein Proggy gecrackt und der Crack im Internet verbreitet wird. Ansonsten sind alle Checks unsicher, solange du deine Software nicht gegen diese Art der Manipulation schützt, wie z.B. mit "Themida", was unter Crackern als äusserst schwierig zu cracken gilt, eigentlich ist es zu arbeitsintensive alle nötigen Daten wiederherzustellen.
Wie willst du übrigens die eindeutige ID in dein Programm einbauen, du bräuchtest zumindest eine Routine die dir einen Schlüssel berechnet den dir der Anwender dann zuschickt, im Gegenzug schickt du ihm einen passenden Validierungscode zu.
-
Ja, aber wie würde man es machen, wenn 100%ig keiner das Tool crackt?
Es soll halt so sein, dass man es nicht einfach weiterverschicken kann.Ich habe mal bei einem CSS VIP Hack mitbekommen, dass man ein Programm herunterlädt, das dir eine ID ausgibt, welche du per Email versendet, woraufhin du dann deine eigene neu kompilierte Version (mit der ID hardcoded drin) bekommst.
Zur Laufzeit muss dann wohl das gleiche Verfahren wie im ID-Tool verwendet werden, sodass die neue ID und mit der hardcoded ID (die z.B. als Variable oder sonst etwas vorliegt) im Programm abgeglichen werden kann, um so festzustellen, ob man der 'richtige' Anwender des Programmes ist.
-
Also ich arbeite mit verschlüsselten Keyfiles, die ich dem User zuschicke. Zur Registrierung benötigt der User auch nur Name + Email, das mit der Hardwareabfrage hatte ich auch schon angedacht, aber dann verworfen. Keygeneratoren und Cracks hab ich noch nicht entdeckt auf einschlägigen Seiten, was kann bedeuten kann, meine Software ist shit und nicht wert, daß sie gecrackt wird oder es ist halt zu schwierig. Weiterhin schaut die Software von Zeit zu Zeit ins Internet ob ich den Usernamen im Keyfile auf eine Blackliste gesetzt habe und stellt dann Dienst ein. Als Crackingprotection setz ich Themida ein. Da ich mich früher auch mit Reverseengeneering beschäftigt habe und etwas Basiswissen mitbringe, kann ich aus perönlicher Erfahrung sagen, daß ich unter all den EXE-Protectoren noch nichts Besseres gefunden.
Bis jetzt bin ich mit der beschriebenen Methode ganz gut gefahren.
-
Nur ist mir Themida zu aufgequollen, außerdem geht es mir derzeit vielmehr um das Lizenzsystem als um die Protection, da ich erst einmal einen Ansatz finden muss, wonach ich mir dann überlegen kann, wie ich es schaffe, dass es nicht einfach umgangen wird.
Des Weiteren möchte ich es halt nur lokal machen, ohne einen Server anzufragen...