![]() |
ProductID auslesen zwecks "Kopierschutz"
Hallo Leute,
ich möchte gerne einen "eindeutigen" String eines WindowsOS auslesen.. Gegal ob UAC aktiv oder nicht Egal ob 32 oder 64 Bit Windows Egal ob reale Maschine oder virtuelle Maschine Egal ob uraltes oder neuestes Betriebssystem Egal - welche Userberechtigung anliegt Anhand dieses Strings würde ich dann online "nachschauen" - ob der Rechner eine gültige Nutzungslizenz besitzt. Hab momentan die unten ageführten Zeilen: Ist das eurer Meinung nach ne brauchbare Lösung (auch in Bezug auf Win10?) Vielen Dank für Infos Erich
Delphi-Quellcode:
function TMainForm.GetWindowsRegistryValuesA: string;
const CDataValue1: string = 'DigitalProductId'; CDataValue2: string = 'DigitalProductId4'; CKeyName: string = 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\'; var Reg: TRegistry; message_string:String; vSize, p: integer; tmpStr: AnsiString; begin message_string:='Keine Werte gefunden'; Reg := TRegistry.Create; try Reg.RootKey := HKEY_LOCAL_MACHINE; if (Reg.OpenKeyReadOnly(CKeyName)) then begin try if Reg.ValueExists(CDataValue1) then // 32 Bit OS begin vSize := reg.GetDataSize(CDataValue1); if (vSize > 0) then begin SetLength(tmpStr, vSize); reg.ReadBinaryData(CDataValue1, tmpstr[1], vSize); repeat p := Pos(#0, tmpStr); if p <> 0 then Delete(tmpStr, p, 1); until p = 0; message_string :='ProductID 32bit:'+ tmpStr; end; end; if Reg.ValueExists(CDataValue2) then // 64 Bit OS begin vSize := reg.GetDataSize(CDataValue2); if (vSize > 0) then begin SetLength(tmpStr, vSize); reg.ReadBinaryData(CDataValue2, tmpstr[1], vSize); repeat p := Pos(#0, tmpStr); if p <> 0 then Delete(tmpStr, p, 1); until p = 0; message_string :='ProductID 64bit:'+ tmpStr; end; end; finally Reg.CloseKey; end; end; finally Reg.Free; end; showmessage(message_string); end; |
AW: ProductID auslesen zwecks "Kopierschutz"
Und wenn jemand sein OS neu installiert oder upgraded ist die Lizenz nicht mehr gültig? Ich dachte (Achtung, Halbwissen), so etwas macht man üblicherweise über die MAC des ersten Netzwerkadapters?
|
AW: ProductID auslesen zwecks "Kopierschutz"
Was soll Dir das bringen ? Was passiert wenn der Anwender einen Betriebssystemwechsel durchführt ?
|
AW: ProductID auslesen zwecks "Kopierschutz"
Falls der User das Betriebssystem wechselt - schick ich ihm eine neue Lizenz ..
Mir geht es nur darum - dass die Software auf EIN verifiziertes OS beschränkt ist. |
AW: ProductID auslesen zwecks "Kopierschutz"
Ich sage mir in solchen Fällen immer: ist das Programm so gut, dass es die halbe Welt haben will, wird man es knacken. Ist es ein unwichtiges pillepale Programm, wozu der Aufwand?
Also diese Methode kann man wohl mit einem Eintrag in hosts aushebeln. Es seiden, das Programm funktioniert gar nicht ohne Überprüfung. Dann funktioniert es also immer dann nicht wenn man kein Internetzugang hat. Mal klein wenig OT: zum Kopierschutz habe ich ein gespaltenes Verhältnis. Es sollte gut, aber nie zu gut sein. Ich habe schon so manche ehemals sehr erfolgreiche Programme von jetzt auf sofort von der Bildfläche verschwinden sehen, als die einen guten Kopierschutz eingeführt haben. Illegale Kopien, so sehr sie einen ärgern, sind auch immer etwas kostenlose Werbung. |
AW: ProductID auslesen zwecks "Kopierschutz"
Zitat:
|
AW: ProductID auslesen zwecks "Kopierschutz"
Zitat:
Auf den letzten 3-4 EKON's gab es jeweils mindestens einen Vortrag zum Softwareschutz und die Essenz daraus : Vergiss es oder setz was professionelles ein |
AW: ProductID auslesen zwecks "Kopierschutz"
Das will ich nicht verneinen, aber ich stelle mir immer die Frage: wie viele von den 99% sich meine Software tatsächlich auch gekauft hätten? Nicht jeder der sie nutzt ist ein tatsächlicher Kunde. Was soll angeblich AutoDesk über ihr AutoCAD (frei wiedergegeben) gesagt haben? Was interessiert es uns ob Klein Hänschen sich illegal unsere Software besorgt hat um damit sein Vogelhäuschen zu planen. Unsere Kunden sind die Firmen. Wenn eine Software wie z. B. TotalCommander nicht mehr kostenlos nutzbar ist, werden die Leute eine andere Software nutzen. Irgendwann verringert sich der Bekanntheitsgrad des Programms und dann stellt sich die Frage ob man noch dem 1% seine Software verkauft kriegt.
|
AW: ProductID auslesen zwecks "Kopierschutz"
Zitat:
Ich würde allerdings auch keinen Kopierschutz empfehlen, der nur Online funktioniert. Berechne doch aus dem Registry-Key, einen neuem verschlüsselten Key und sende diesem dem Anwender. Nur wenn dieser im Programm hinterlegte Schlüssel, mit dem in der Registry passt, ist das Programm freigeschaltet. Würde dann auch Offline funktionieren. mfg Frank |
AW: ProductID auslesen zwecks "Kopierschutz"
Nachdem die obligatorisch Kopierschutzstandpauke nun erledigt ist, bleibt eigentlich noch die Frage, ob die ausgelesenen Werte ein System eindeutig kennzeichnen :mrgreen:
Zitat:
In der DP gibt es einen Haufen Diskussionen und Quellcode zu dem Thema ( ![]() ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz