![]() |
SW Module mit Key schützen
Hallo,
wir haben hier eine SW die mit einem "Messgerät" ausgeliefert wird. Nun sollen in die SW Funktionen eingebaut werden, die vom Kunden kostenpflichtig erworben werden können. Welche Möglichkeiten bestehen, die zugekaufte erweiterte SW mit einem Key oder Ähnlichem vor unzulässigem Kopieren zu schützen? Danke und beste Grüße |
AW: SW Module mit Key schützen
Egal welche Möglichkeit man wählt, es gibt immer Wege den Schutz zu umgehen.
Ich selber baue deswegen aus Prinzip keinen Schutz mehr ein. Denn jemand der deine Module verbotenerweise nutzen will, wird es auch erfolgreich tun. |
AW: SW Module mit Key schützen
Schau mal ins GetIt, da finden sich auch paar Dinge.
Es gibt mehrere Produkte ala ![]() Es gibt auch produkte, wo ein Hardware-Dongle (z.B. als USB-Stick) verwendet wird. Nur als Hardware-Key (quasi die Seriennummer auslesen und im Programm prüfen) oder als Verschlüsselung, wo innerhalb der Hardware entschlüsselt wird (Programmcode verschlüsselt in der EXE/DLL). Auch kann man Programmcode in externe Hardware auslagern, dann ist das garnicht erst kopierbar. Dazu zählen auch Online-Service, also bei euch, aber dafür muß das Programm einen Internetzugang besitzen. |
AW: SW Module mit Key schützen
![]() |
AW: SW Module mit Key schützen
Wie sieht es mit
![]() |
AW: SW Module mit Key schützen
der einzige einigermaßen sichere Softwareschutz ist eine zusätzliche eigene freiprogrammierbare Hardware, z.B. 100% selbstentwickelter und frei non Standard programmierter USB-Stick mit einem schnelen 32Bit Microcontroler und möglichst viel internem Speicher für PrivateKeys und echte bidirektionale "RandomTabellen" Tabellen.
Wenn eine Kauflösung, dann lieber nur gute Software als nen 0815-Dongle! ![]() "WinLicense®(incl.Themida®)" + "Code Virtualizer®" + "XBundler®" Das wird im Banken und Gesundheitsbereich oft und großteils erfolgreich (also "noch sicher") eingesetzt. Ich bleibe "weil ich es kann" lieber bei eigener Hardware:) XY-SingleChip-Hardware ist nur für echte Profis mit wirklich aufwendiger Spezialtechnik zu analysieren und nachzubauen, da bleiben über 99% aller noch so guten Softwarehacker stecken, wenn die Logik und Berechnung wirklich nur in der externen Hardware stattfindet und dort per PC definitiv ausser IO-Daten nix per Software rein&rauskommen kann(also man selbst kein SoftwareBackdoor für z.B. einen Bootloader oder sonstige Updates einbaut). |
AW: SW Module mit Key schützen
Das Problem ist, dass es am Ende zwangsweise immer eine if-Anweisung ist die für die Prüfung zuständig ist.
Sobald man die gefunden hat, ist jeder Schutz umgehbar. |
AW: SW Module mit Key schützen
..."Das Problem ist, dass es am Ende zwangsweise immer eine if-Anweisung ist die für die Prüfung zuständig ist.
Sobald man die gefunden hat, ist jeder Schutz umgehbar."... du denkst da nicht "weit genug"... sieh die PC Software doch einfach nur als Weiterleitung und Anzeige von XY... also das PC Programm kann und macht ausser SendDataX/GetResponseY 100% NIX... was so da per Software geknackt werden... klar kann jemand aus meiner PC&MAC Software sich ne Linuxsoftware selbst basteln, aber ohne die externe HW geht da garnix;) |
AW: SW Module mit Key schützen
Zitat:
Ja, wenn nur an ein paar Stellen ein
Delphi-Quellcode:
auftaucht, dann läßt sich durch Änderungen eines einzigen Bits in
if Schutzfunktion then
Delphi-Quellcode:
abändern.
if NOT Schutzfunktion then
Darum verschllüsseln "bessere" Schutzfunktionen den eigentlichen Programmcode und entschlüsseln ihn dann zur Laufzeit. Natürlich muß man dann auch aufpassen, dass niemand zur Laufzeit den Code einfach so ausließt und später in den Programmkopieen direkt lädt. |
AW: SW Module mit Key schützen
Zitat:
|
AW: SW Module mit Key schützen
der zuschützende Programmcode sollte im Idealfall nur auf einem "externem" sicheren System ausgeführt werden... verschlüsselt speichern und unverschlüsselt im RAM ausführen bringt nix, wenn dann eine Tokenvirtualisierung wie bei Themida...
Wer das Hardwarekonzept nicht mag, der denke alternativ mal an eigene WebServices und RemoteProcedureCalls... dann ist der zu schützende Programmcode auch nur auf dem eigenem WebServer, nur die IO-Daten fliegen hin&her. => Und man sollte etwas genauer definieren, "was" man schützen will: - nur die Verhinderung von unbezahlter (mehrfach) Nutzung - den Programmcode an sich, also Schutz gegen echtes Debug und "ReversSource" vom Algo oder speziellen (Key)Daten - oder "beides" => auch sollte bestimmt werden, ob welche Connectivität die Schutzlösung vorraussetzt - nur online - online und zeitweise(max wie lange?) offline - auch 100% offline => letzter Punkt: was darf es Kosten? - einmal, also Entwicklung, Implemeterung und Test - was kostet es pro Kundenlizenz an Selbstkosten sowie bei ext. Zukauf pro Lizenz - was wieviel ist der Kunde max. bereit "zusätzlich" zu zahlen(also z.B. einen HW-Dongle für die sichere offline Fähigkeit, oder einen OnlineKey als Backup wenn der HW-Dongle kaputt oder verloren)... und wie "verkaufe" ich ihm das damit er es "gerne" zahlt und sich nicht als böser Raubkopierer verdächtigt sieht) - wie machen es die Mitbewerber und gibt es von bösen Leuten schon für andere oder eigenene Software "Patches" im INet oder in dafür bekannten Kreisen |
AW: SW Module mit Key schützen
Der TE möchte ja - wenn ich es richtig verstanden habe - eine einfach Möglichkeit bieten, über einen Code bestimmte Funktionen freischalten zu können. Am sichersten wäre bestimmt, die Programmfunktion überhaupt erst zu integrieren, wenn es bezahlt wird. Also sprich - neue EXE ausliefern.
Ich kann mir aber vorstellen, daß die Möglichkeit des "Crackens" in dieser speziellen Situation eher sekundärer Natur ist und es um die "einfache" Erweiterung der Programmfunktion geht. Und nicht jede Firma/Behörde etc. , die Software von Euch einsetzt, ist im Besitz von Reverse-Engeneers, welche darauf aus sind, Eure Software auszuhebeln. Aber ich weiß, selbst Skript-Kiddies können das mit den einschlägigen Tutorials mittlerweile.... Was ich eigentlich sagen möchte: Sollte der "Schutz" im engeren Sinne sekundär sein und die EINFACHE Möglichkeit, Funktionen freischalten zu können, im Vordergrund stehen, dann würde ich sehr wohl behaupten, dass eine einfache Lösung in diesem Fall durchaus Sinn macht bzw. Sinn machen könnte... über das Für- und Wider bzw. Kosten-Nutzen-Verhältnis kann nur der TE urteilen... In diesem Sinne noch ein schönes Rest-Wochenende! |
AW: SW Module mit Key schützen
Zitat:
Modernene Schutzprogramme sind dann dazu übergegangen immer nur Teile des Programmcodes sozusagen dynamisch bei Ausführung zu entschlüsseln. Ist schonmal besser, kann aber automatisiert auch sehr einfach entpackt werden. Außerdem muss man sich vor Augen halten, dass der Crypto Key IMMER zwangsweise irgendwo im Programm enthalten sein muss. Hat man den gefunden, hat man gewonnen. Lösungen wie Themida oder VMProtect setzen primär auf Obfuscation (= einzelne Instructions werden in Äquivalenten Code umgeschrieben und in Code versteckt, der "nichts macht") und Virtualisierung (= der Protektor erstellt eine virtuelle Maschine mit dynamisch erzeugten Instruction Set und übersetzt das Target bzw. Teile davon). Diese zwei Sachen kann man dann für den maximalen Schutz noch kombinieren und mit einigen Kleinigkeiten wie Import Redirection, Debugging Checks, etc. aufpimpen, um die Cracker noch ein wenig mehr zu ärgern :stupid: So eine VM zu reversen und den Code dann auch noch zu reassemblieren macht extrem wenig Spaß :-D Zitat:
|
AW: SW Module mit Key schützen
Jupp, da wird teilweise mit "Virtuellen Maschinen" gearbeitet.
Also der zu schützende Code wird in einen anderen CPU-Befehlssatz umgewandelt und zur Laufzeit in einem virtuellen System ausgeführt. So ähnlich wie Android/iOS in einem Emulator im PC. Man nimmt dafür "exotische" emuliterte Geräte, denn so nimmt man dem Cracker erstmal sein Wissen über sein ihm bekanntes System (hier x68, Windows und die Win32 API) "Obfuscation durch Nichtwissen" ist zwar auch letztendlich knackbar, aber wenn jedes Programm sein eigenes virtuelles System hat, dann muß hier jemand erstmal für jeden zu knackenden Code erstmal rausbekommen wie es funktioniert, was das knacken also schon sehr erschwert. Also wie beim ![]() |
AW: SW Module mit Key schützen
Zitat:
|
AW: SW Module mit Key schützen
Der technische Aspekt ist schon ausführlich beleuchtet worden.
Ich glaube, man muss auch überlegen, wie viel Aufwand man selber in einen Schutz stecken möchte, denn das zu implementieren und zu warten kostet ja auch. Und man muss überlegen, wie viel Aufwand man dem Kunden zumuten möchte. Ganz anders betrachtet: - Jede illegale Kopie ist Werbung, für die man nicht zahlen muss. - Kopierschutz vermittelt dem Kunden immer eine gehörige Portion Misstrauen. Und das ist schlecht, denn wir wollen ja, dass unsere Kunden ihre guten Erfahrungen mit unserer Software weitererzählen. |
AW: SW Module mit Key schützen
Zitat:
Stichwort: Misstrauen gegenüber Kunden. Ich schlisse auch meine Haustür ab wenn ich gehe, oder soll ich die besser offen lassen? Schließlich ist keine Haustür vollkommen sicher. Oder habe ich da ein Misstrauen gegenüber meiner Mitmenschen. Ich sichere meine Software mit einer eigenen Online-Aktivierung ab. Auch nicht vollkommen aber besser als nichts.:-D |
AW: SW Module mit Key schützen
Ich hatte auf den letzten Foren-Tage auch über meine Erfahrungen von Themida berichtet.
Ich kann sagen ich bin zu frieden und einen Krack oder ein Seriennummerngenerator gibt es für meine Software BOMAC (noch) nicht. Wichtig ist nur, dass du die entscheidenden Quelltextteile in die VMs auslagerst. Was du in deinen Fall machen kannst: Nimm die Seriennummer des Gerätes (Hardware) und verknüpfe die mit dem Softwaremodul. Wenn die voneinander abhängig sind, dann können Kunden auch nicht untereinander die Freischaltschlüssel tauschen. |
AW: SW Module mit Key schützen
Hallo,
danke für die Vorschläge. U.a. ist die SW -> Device - Bindung eine echte Option. Beste Grüße |
AW: SW Module mit Key schützen
Zitat:
Was, wenn keine Internetverbindung besteht? |
AW: SW Module mit Key schützen
Gerät steht in diesem Fall lokal am SW-PC (Usb).
|
AW: SW Module mit Key schützen
Zitat:
|
AW: SW Module mit Key schützen
Genau wegen diesem Hin und Her Hin und Her finde ich es besser, einfach gar keinen Schutz einzubauen.
|
AW: SW Module mit Key schützen
Zitat:
Themida, VMProtect, etc. drüberjagen und gut ist. Mindestens 1000x besser, als alles was man auf die Schnelle per Hand entwickeln kann und dazu Null Aufwand. Die Anschaffungskosten lohnen sich definitiv. |
AW: SW Module mit Key schützen
Zitat:
|
AW: SW Module mit Key schützen
Zitat:
|
AW: SW Module mit Key schützen
Zitat:
Das liegt nicht an meiner Verschlüsslung oder Umsetzung sondern an Aufwand und Nutzen. Klar, es gibt keinen absoluten Schutz vor Raubkopien aber man sollte es so schwer wie nötig machen. Auch ein ständiges Ändern der Schutzart bei jeder Programmversion erhöht den Aufwand für illegale Kopien. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:35 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