![]() |
Nochmal Kopierschutz ...
Hallo,
ich nutze zur Zeit für einen Kopierschutz den Code von ![]() Früher habe ich die MAC Adresse benutzt um den PC zu identifizieren. Es gab jedoch Probleme, wenn der PC per WLAN "aktiviert" und anschliessend mit einer Kabelverbindung genutzt wurde. Blöd ist auch, daß man keine MAC Adresse auslesen kann wenn der Netzwerkadapter deaktiviert wurde. Meine Frage: Welche zuverlässige Hardware Information kann man ausserdem für einen Kopierschutz verwenden ? Die Festplatte möchte ich nicht so gern als Referenz benutzen, falls die Festplatte mal defekt ist müsste ich eine neue Lizenz schicken. Sehr ungewöhnlich finde ich, daß Hardwareinformationen des Prozessors mit unterschiedlichen Windows Systemen unterschiedliche Werte ergeben. Der Code von "The Road to Delphi" ist nicht zu empfehlen, ich hatte ihn einige Zeit im Einsatz. Es gab Windows Updates die das Ergebnis beeinflussen und dann ist wieder eine neue Lizenz fällig. KUBA |
AW: Nochmal Kopierschutz ...
Moin,
also ich persönlich nutze USB Sticks mit Seriennummer um ein entsprechendes file auf dem Stick zu crypten. Meine SW durchsucht das System nach angeschlossenen Sticks, prüft ob die Datei vorhanden ist und decrypted die Datei mit der Seriennummer des Sticks... Stimmt der Inhalt nicht überein ...peng Hat den großen Vorteil, dass ich dem Kunden ein (kostengünstiges)Installationsmedium als "Dongle" mitliefere und die Lizenz problemlos von Rechner zu Rechner umziehen kann und das Ganze dann gleich noch als Backup Medium dient... Für den geübten Hacker ist das natürlich alles kein Problem, aber für den geneigten Laien.... |
AW: Nochmal Kopierschutz ...
Hallo,
das mit dem USB-Stick hatte ich mir auch schon überlegt, kommt aber leider nicht in Frage. Die Software wird auf Touch-PC's verwendet, da stört der USB-Stick, auch wenn es so ein Mini-Stick ist. Im Internet fand ich noch einen Code zum Auslesen der ![]() Habe den Code unter Windows 10 getestet und mit meinem Windows 7 USB-Stick das selbe Ergebnis erhalten. Ich bastel mir einen Code, bei dem ich den Windows Lizenzkey mit einbeziehe, das müsste funktionieren. Auf virtuellen PC's wird die Software wohl kaum eingesetzt. Danke ! KUBA |
AW: Nochmal Kopierschutz ...
Entwickelst du dein Projekt beruflich / kommerziell? Wenn ja, kann ich dir nur
![]() Nimm deinen Stundensatz * die Stunden, die du an einem selbstgebastelten Kopierschutz sitzt, der auch noch halbwegs "robust" sein muss. Es geht ja nicht nur um die Errechnung einer zuverlässigen Seriennummer, sondern dein Schutz sollte im Code auch so gestaltet sein, dass er sich nicht durch das Umbiegen von ein paar Opcodes im Speicher / in der .EXE aushebeln lässt. Unterm Strich kann sich da die Investition in einen professionellen Kopierschutz im Nu armotisieren. |
AW: Nochmal Kopierschutz ...
![]() Kostet nur die Hälfte (< 200 EUR) und ist bei mir seit langem (> 3 Jahre) ungeknackt. Inklusive Protector, Keymaker, API für Interaktion etc. |
AW: Nochmal Kopierschutz ...
Soweit ich das mitbekommen habe, hat ASProtect Probleme mit Antivirusprogrammen? Ist das immernoch aktuell?
![]() |
AW: Nochmal Kopierschutz ...
In letzter Zeit hatte ich da keine Probleme, vor 3-4 Jahren hat Avira ganz gerne mal falschen Alarm gemeldet. Damit kann ich leben und sag den Usern, dass die Software keine Viren enthält. Mein Server (@ Home) wird von Kaspersky Endpoint gescannt, die Workstation mit Kaspersky Internet Security. Das hilft nahezu immer. Zumal Avira meistens nur wg. Heuristic zugeschlagen hat.
|
AW: Nochmal Kopierschutz ...
Zitat:
|
AW: Nochmal Kopierschutz ...
Ich hatte ein ähnliches Problem und musste Computer möglichst eindeutig identifizieren.
Vielleicht ist das für einen privaten Kopierschutz auch brauchbar. Jeder Computer (PC, Notebook, Smartphones) verfügt über eine eindeutige UUID. Diese ist HW-seitig eingebrannt (Ähnlich der MAC Adresse einer Netzwerkkarte). Auch virtuelle Hardware verfügen darüber (Getestet aber nur mit VMWare). Ich verwende dazu die uSMBIOS.pas (Z.B. von hier: ![]()
Delphi-Quellcode:
Wünsche gutes Gelingen!
// Uses: uSMBIOS
type TAUUID = Array[0..31] of WideChar; // === Convert UUID ============================================================ function FormatUUID(UUID: TAUUID):String; begin Result:=Copy(UUID,0,8)+'-'+Copy(UUID,9,4)+'-'+Copy(UUID,13,4)+'-'+Copy(UUID,17,4)+'-'+Copy(UUID,21,12); end; function ConvertUUID(UUID: TUUID):TUUID; var i: Integer; tempUUID: TUUID; begin tempUUID:=UUID; for i := 0 to 3 do tempUUID[i]:=UUID[3-i]; for i := 4 to 5 do tempUUID[i]:=UUID[4+(5-i)]; for i := 6 to 7 do tempUUID[i]:=UUID[6+(7-i)]; Result:=tempUUID; end; // === Get UUID ================================================================ function GetUUID:String; Var SMBios : TSMBios; LSystem: TSystemInformation; UUID,UUID2 : TAUUID; //Array[0..31] of WideChar; Dummy: TUUID; begin SMBios:=TSMBios.Create; try LSystem:=SMBios.SysInfo; BinToHex(@LSystem.RAWSystemInformation.UUID,UUID,SizeOf(LSystem.RAWSystemInformation.UUID)); Dummy := ConvertUUID(LSystem.RAWSystemInformation.UUID); BinToHex(@Dummy,UUID2,SizeOf(LSystem.RAWSystemInformation.UUID)); Result := FormatUUID(UUID2); finally SMBios.Free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02: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