Demoversion: Wie mache ich sie sicher?
-
IMHO kann eine nicht geschützte(also ohne AsProtect und co) Exe von jedem Anfänger mit Tutorial von hinten bis vorne durchleuchtet werden (weiß ich aus versuchen mit eigenen programmen ). Und gegen Profis hilft so gut wie gar nichts sonst gäbe es ja auch im Internet nicht die ganzen crackseiten etc. Die einzige Chance die dir bleibt ist es es dem Angreifer so schwer wie möglich zu machen die relevanten Änderungen vorzunehmen. Dazu kannst du z.B. auf einen Exe-Protector zurückgreifen (gut=teuer selbstgemacht=schwierig=billig billigiminternet(falls es das gibt)=schlecht).
Ich schlag dir einfach mal was vor mit denen du solchen leuten wenigstens nicht die Straße ebnest.1. Lagere keine Funktionen mit den namen wie "CheckLicense" oder "hasDemoEnded"in irgendwelche Dlls aus.
2. Prüfe mehrmals im Programm die Gültigkeit der Lizenz bzw. des Datums
3. Lege diese Informationen nicht in einer Variablen ab sondern in mehreren am besten mit dinamisch erstellten Speicheraddressen.Die einzig wirklich wirksame methode gegen unerlaubtes freischalten ist und bleibt die Funktionen gar nicht zur verfügung zu stellen aber das kommt bei dir ja leider nciht in Frage
Soweit von mir
Fencer
-
Noch als kleine Erweiterung zu den vorherigen vorschlägen:
Eventuell Hardwarelösung über Dongle in USB/Parallelport Form, das kommt natürlich drauf an was das für Software ist wenn die Software weniger Wert ist als der Dongle dann bringt die Sache nichts ^^
Dann gibts als weiteres noch die Möglichkeit gewisse Speicherbereiche manuell zu überwachen indem immer mal wieder eine Checksume des Speicherbereichs gebildet wird und überprüft wird ob dies wirklich so vorgesehen war von der Programmlogik. Dazu zählt zB überprüfen ob nicht zum Beispiel if(..) zB jeq anweisungen zu if(!..) jenq umgebaut wurden.
Als weiteres kannst du noch überprüfen ob gewisse Debugger laufen oder das Programm von einem Dissasemblierer ausgeführt wird.
Aber theoretisch kann alles umgangen werden die Frage ist ob ein Kunde wirklich die Kompetenz dazu besitzt.
-
appdata schrieb:
http://msdn.microsoft.com/en-us/library/bb762494(VS.85).aspx
Dann kommt also z.B. das in Frage:
CSIDL_COMMON_APPDATA (FOLDERID_ProgramData)
Version 5.0. The file system directory that contains application data for all users. A typical path is C:\Documents and Settings\All Users\Application Data. This folder is used for application data that is not user specific. For example, an application can store a spell-check dictionary, a database of clip art, or a log file in the CSIDL_COMMON_APPDATA folder. This information will not roam and is available to anyone using the computer.Aber sagt mal, kann man davon ausgehen, dass der Pfad auch immer beschreibbar
ist, oder wird eurer Meinung nach sowas auch gelegentlich in Firmen blockiert?Ich würde das natürlich abfangen, aber nur mal so gefragt
-
telefon registrierung^^
-
Badestrand schrieb:
Dann lagert man eben ein wenig Funktionalität, irgendwas triviales ohne dass es aber nicht geht, auf den Server aus.
Das wäre im Grunde die einzige Möglichkeit. Aber wenn es zu trivial ist, dann wird man es wieder ersetzen können und es erfordert eine entsprechend ausgerüstete Infrastruktur.
-
Ideee schrieb:
Man könnte auch was mit RSA basteln
Und der Private Key liegt als Klartext im Sourcecode? Oder wird der dann wieder in irgendeiner Datei "versteckt"?
-
Solange die Information auf der eigenen Platte landet, ist sie immer leicht zu finden. Dafür muss man die Applikation teilweise nichtmal diassemblieren. Registry/File Monitor Software ist im Netz kostenlos zu kriegen und die reichen aus um zu sehen, was die Anwendung so macht. Etwas mehr Sicherheit bietet wohl nur die "Rücksprache" der Software mit einem Internet-Server oder sowas in der Art, wo der User nicht rankommt. Wasserdicht wirds dadurch allerdings auch nicht.
-
mach 2 demoversionen die jeweils die hälfte der funktionalität enthalten
-
byto schrieb:
Ideee schrieb:
Man könnte auch was mit RSA basteln
Und der Private Key liegt als Klartext im Sourcecode? Oder wird der dann wieder in irgendeiner Datei "versteckt"?
Der private Schlüssel verbleibt immer beim Programmierer. Zum Entschlüsseln wird der öffentliche Schlüssel verwendet, der im Programm enthalten ist.
Ansonsten sollte man sich nicht der Hoffnung hingeben, die Testversion sicher machen zu können. Wenn man sich mal anschaut, wieviel Aufwand z.B. Adobe in die Sicherung seiner Produkte steckt und wie schnell es dafür "Abhilfe" gibt, dann sollte man die Zeit für die Programmierung eines umfangreichen Schutzes lieber gleich in die Verbesserung des Programms stecken. Denn das bringt wirklich zahlende Kundschaft. Den Wettlauf mit den Crackern kannst Du sowieso nicht gewinnen.
-
genau!
Wer wirklich mit einer Software arbeiten will, zahlt auch dafür anstatt cracks zu benutzen. Die anderen gehören oft der Fraktion "Brauch-ich-zwar-nicht-aber-wenns-gratis-ist-nehme-ich-es-halt-doch"
an
:schland:
-
sri schrieb:
byto schrieb:
Ideee schrieb:
Man könnte auch was mit RSA basteln
Und der Private Key liegt als Klartext im Sourcecode? Oder wird der dann wieder in irgendeiner Datei "versteckt"?
Der private Schlüssel verbleibt immer beim Programmierer. Zum Entschlüsseln wird der öffentliche Schlüssel verwendet, der im Programm enthalten ist.
Und was hält einen Cracker davon ab, den Publickey zu extrahieren und die Daten für immer zu entschlüsseln?
Das einzige was man wirklich ohne großen Aufwand machen könnte, wäre die Demoversion abzuspecken.
-
rüdiger schrieb:
Das einzige was man wirklich ohne großen Aufwand machen könnte, wäre die Demoversion abzuspecken.
Würde nicht auch das Gegenteil gehen? Vor allem, wenn man alles präsentieren möchte.
Unter dem Gegenteil verstehe ich Dinge wie:
- Beim Aufstarten muss man 30-60 oder mehr Sekunden warten, weil es halt eine Demoversion ist.
- Alle 30 Minuten wird das Programm zwangsterminiert.
- Nach Ausführen von X Aktionen, bekommt man wieder einen Werbebildschirm, dass man das Programm kaufen soll, wo man es kaufen kann und das man nun zuerst mal wieder 60 Sekunden warten soll.
- usw.
Oder anders gesagt:
Alles anbieten, aber die Arbeit mit dem Programm unmöglich machenGrüssli
-
das ist glaube ich nicht ganz dass was sein Chef will.(oder sehe ich das falsch?)
btw: "crippleware" erhöht nicht gerade die Freude am kaufen
-
rüdiger schrieb:
Und was hält einen Cracker davon ab, den Publickey zu extrahieren und die Daten für immer zu entschlüsseln?
Dazu muss er die verschlüsselten Daten (z.B. einen Freischaltcode) erst mal besitzen. Mit dem öffentlichen Schlüssel kann man zwar Daten entschlüsseln, aber nicht verschlüsseln. Einen Keygenerator kann man nur schreiben, wenn man den privaten Schlüssel besitzt. Bei einer vernünftigen Stärke dauert es aber eine ziemlich lange Zeit, bis man den berechnet hat.
rüdiger schrieb:
Das einzige was man wirklich ohne großen Aufwand machen könnte, wäre die Demoversion abzuspecken.
Dann schwirrt halt anstatt des Freischaltcodes die Vollversion durchs Netz. Cracker sind auch nicht gerade unkreativ.
Man sollte aber auch vor allem darauf achten, dass man den kaufwilligen Anwender nicht unnötig gängelt und stresst. Aktivierungen per Internet nerven nur, vor allem dann, wenn man auf seinem Rechner mehrere Betriebssysteme parallel installiert hat. Also ruhig mal überlegen, wie man sich selbst als Anwender fühlt.
-
Ich würde das Programm vollbitverschlüsseln. Das ist unknackbar.
-
Krüptochef schrieb:
Ich würde das Programm vollbitverschlüsseln. Das ist unknackbar.
das wage ich aus prinzip und weged dem wort "unknackbar" zu bezweifeln
.
Die Titanic war auch unsinkbar und vistas UCM auch unumgehbar.
*Liste fortsetzten*sehr schwer zu umgehen glaub ich gern. Aber das lohnt denn auch den Aufwand wirklich?. (Kosten-Nutzen Rechnung
)
-
Bevor Du da drauf einsteigst, such mal ein wenig im Forum nach den Nick bzw. der "Vollbitverschlüsselung" - lustig ist es allemal
-
wenn das Programm keinen zugriff aufs Internet hat und auch von nicht Admins gestartet werden können soll, dann kann man diese "30 Tage" oder "100 Starts" Demos ganz einfach "Cracken". Das erste durch umstellen des Datums und das zweite indem man eine Kopie von allen Dateien macht, die das Programm verwendet und dann den alten zustand wiederherstellt.
-
Macht ne abgespeckte Version 100% kostenlos und die erweiterte mit Profi Features für Geld (man muss sich natürlich geschickt überlegen, was). Das ist modern und steigert ausserdem den Verbreitungsgrad
-
sri schrieb:
rüdiger schrieb:
Und was hält einen Cracker davon ab, den Publickey zu extrahieren und die Daten für immer zu entschlüsseln?
Dazu muss er die verschlüsselten Daten (z.B. einen Freischaltcode) erst mal besitzen. Mit dem öffentlichen Schlüssel kann man zwar Daten entschlüsseln, aber nicht verschlüsseln. Einen Keygenerator kann man nur schreiben, wenn man den privaten Schlüssel besitzt. Bei einer vernünftigen Stärke dauert es aber eine ziemlich lange Zeit, bis man den berechnet hat.
Wenn man nur eine Abfrage macht, dann ist es wohl selbst für den schlechtesten Cracker wohl nur eine Sache von Minuten, die Abfrage auszuhebeln. Da braucht man gar nicht diskutieren. Es ging wohl eher darum das Programm zu verschlüsseln und erst durch den Key zu entschlüsseln. Was aber auch nicht geht, da der Cracker ja den Publickey nehmen kann.
sri schrieb:
rüdiger schrieb:
Das einzige was man wirklich ohne großen Aufwand machen könnte, wäre die Demoversion abzuspecken.
Dann schwirrt halt anstatt des Freischaltcodes die Vollversion durchs Netz. Cracker sind auch nicht gerade unkreativ.
Man sollte aber auch vor allem darauf achten, dass man den kaufwilligen Anwender nicht unnötig gängelt und stresst. Aktivierungen per Internet nerven nur, vor allem dann, wenn man auf seinem Rechner mehrere Betriebssysteme parallel installiert hat. Also ruhig mal überlegen, wie man sich selbst als Anwender fühlt.
abgespeckt == Die Demo hat gar nicht alle Features. => Es gibt keinen Freischaltcode.