AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SW Module mit Key schützen

Ein Thema von tomkupitz · begonnen am 10. Dez 2017 · letzter Beitrag vom 12. Dez 2017
Antwort Antwort
Seite 2 von 3     12 3      
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#11

AW: SW Module mit Key schützen

  Alt 10. Dez 2017, 18:55
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
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: SW Module mit Key schützen

  Alt 10. Dez 2017, 19:47
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!
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#13

AW: SW Module mit Key schützen

  Alt 10. Dez 2017, 20:32
Zitat:
Darum verschllüsseln "bessere" Schutzfunktionen den eigentlichen Programmcode und entschlüsseln ihn dann zur Laufzeit.
Das wäre meiner Meinung nach eine Diskussion werde.
Ist auch nur bedingt hilfreich, wie himitsu schon angedeutet hat. Früher haben diese Protektoren einfach beim Start das komplette Binary on-the-fly im RAM decrypted und dann die Ausführung beim originalen EntryPoint fortgesetzt. Da kamen die Leute allerdings sehr schnell drauf, dass man dann einfach das (dann unverschlüsselte) Speicherabbild zur Laufzeit wieder in eine .exe dumpen konnte. Muss man gegebenenfalls noch ein paar Imports fixen, aber das ist alles kein Teufelswerk.

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 So eine VM zu reversen und den Code dann auch noch zu reassemblieren macht extrem wenig Spaß

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.
Besonders das Web-Konzept ist eigentlich die einzig wirklich sichere Lösung, aber je nach Performance- bzw. Sicherheitsanforderungen (wenn die Rechner z.b. bewusst keinen Internetzugang besitzen) nicht immer machbar. Die Wahrscheinlichkeit, dass sich jemand überhaupt die Mühe macht, einen Hardware Schutz zu umgehen, ist natürlich auch sehr gering. Ist für professionelle (Firmen-)Software sicherlich eine gute Lösung, für normale Heimanwender allerdings leider total ungeeignet.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#14

AW: SW Module mit Key schützen

  Alt 10. Dez 2017, 20:56
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 OTP macht man es dem Angreifer möglichst schwer.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#15

AW: SW Module mit Key schützen

  Alt 10. Dez 2017, 21:07
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.
Bei VMP kann man sogar einstellen, dass im selben Programm direkt mehrere einzigartige VMs zum Einsatz kommen Ist natürlich letzten Endes auch knackbar, aber kaum jemand wird sich die Mühe machen.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.205 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: SW Module mit Key schützen

  Alt 11. Dez 2017, 08:21
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.
  Mit Zitat antworten Zitat
RSF

Registriert seit: 13. Mär 2008
153 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#17

AW: SW Module mit Key schützen

  Alt 11. Dez 2017, 09:39
........

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.
Was nutz diese Art von kostenlose Werbung,99% nutzt meine Software kostenlos. Wer deckt dann meine Ausgaben(Delphi, Strom, Lohn usw.)??
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.
Ronald
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#18

AW: SW Module mit Key schützen

  Alt 11. Dez 2017, 10:05
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.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
tomkupitz

Registriert seit: 26. Jan 2011
339 Beiträge
 
Delphi 12 Athens
 
#19

AW: SW Module mit Key schützen

  Alt 11. Dez 2017, 17:16
Hallo,

danke für die Vorschläge. U.a. ist die SW -> Device - Bindung eine echte Option.

Beste Grüße
  Mit Zitat antworten Zitat
LTE5

Registriert seit: 13. Nov 2017
355 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#20

AW: SW Module mit Key schützen

  Alt 11. Dez 2017, 17:19
Zitat:
Ich sichere meine Software mit einer eigenen Online-Aktivierung ab. Auch nicht vollkommen aber besser als nichts.
Ist das dann nicht so eine typische Software, die bei jedem, Start nach Hause telefoniert?
Was, wenn keine Internetverbindung besteht?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz