Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Testversion eines Programms schützen? (https://www.delphipraxis.net/69579-testversion-eines-programms-schuetzen.html)

Grolle 17. Mai 2006 12:22


Testversion eines Programms schützen?
 
Hallo,

ich möchte die Testversion eines Sharewareprogramms einschränken indem
ich die Anzahl der Datensätze auf ca. 10 begrenze. Ist das ein sicherer Schutz,
oder wird der sofort geknackt?

Viele Grüße...

Olli 17. Mai 2006 12:30

Re: Testversion eines Programms schützen?
 
Kommt darauf an, wie er implementiert wird ...

Einen n00b schreckt das sicher ab, aber wenn es Shareware ist, wird der Preis sicher auch nicht so hoch sein, daß sich der Aufwand für dich rechtfertigen läßt, etwas sonderlich kompliziertes zu erstellen.

Grolle 17. Mai 2006 12:40

Re: Testversion eines Programms schützen?
 
Hi,

danke für die schnelle Antwort. Ich wollte einfach beim Start des Programms
mit record.count die Anzahl der datensätze ermitteln. Das Programm soll ca.
35 € kosten.

TeronG 17. Mai 2006 12:51

Re: Testversion eines Programms schützen?
 
Evtl. kannste auch n paar Otionen weglassen / Tempen. Da diese (bei aktiver Codeoptimierung) dann erst garnicht mitkompiliert werden kann man sie auch nicht wieder her-knacken.

jontester 17. Mai 2006 12:58

Re: Testversion eines Programms schützen?
 
hmmm

also mit dem schützen ist sone sache,der beste Schutz ist einige Teile weglassen ,dann solltet du das Proggi noch mit nen cruncher Bearbeiten und ein paar crc check's einbauen ,dann ist es fast sicher ,einen 100%igen schutz gibt es nicht

Grolle 17. Mai 2006 13:03

Re: Testversion eines Programms schützen?
 
@ jontester
cruncher, crc-check? Habe ich noch nie was mit zu tun gehabt. Wie läuft das?

@ TeronG
Es scheint mir auch die beste Lösung einfach Programmteile wegzulassen, allerdings kann ich so nicht den vollen Funktionsumfang des Programms präsentieren.

jontester 17. Mai 2006 13:40

Re: Testversion eines Programms schützen?
 
also nen cruncher ist nen packer der die import table verschlüsselt in einem anderen teil der *exe ablegt,somit kann man nicht patchen weil man die optocodes nicht findet

und crc check musste mal suchen ,ich habe den quellcode im augenblick nicht zur hand ,da gab es mal ne gute abhandlung in der 'sceene '

Daniel G 17. Mai 2006 13:50

Re: Testversion eines Programms schützen?
 
Zitat:

Zitat von jontester
also nen cruncher ist nen packer der die import table verschlüsselt in einem anderen teil der *exe ablegt,somit kann man nicht patchen weil man die optocodes nicht findet

Hmm.... aber irgendwann landet das doch sowieso im Speicher, oder nicht? Mal abgesehen davon, dass ich von Exe - Packern und -Cryptern sowieso nicht viel halte... schrauben sie mir doch zu sehr am Speichermanagement herum...

TeronG 17. Mai 2006 15:18

Re: Testversion eines Programms schützen?
 
Zitat:

Zitat von Grolle
@ TeronG
Es scheint mir auch die beste Lösung einfach Programmteile wegzulassen, allerdings kann ich so nicht den vollen Funktionsumfang des Programms präsentieren.

Yup ... und genau das wollte man ja mit so ner Testversion eigentlich machen ...
Das kommt hald dann auf dein Programm drauf an, wie und ob man da "wichtige" Functionen weglassen kann aber der User es dennoch testen kann.
Ich hatte z.B. mal ne Software bei der konnte man alles nur nicht Speichern ..

volkerw 17. Mai 2006 15:44

Re: Testversion eines Programms schützen?
 
Genau dafür gibt es TurboPower OnGuard:

TP OnGuard

Die ersten Zeilen der readme.txt:

OnGuard is a library to create demo versions of your Borland Delphi &
C++Builder applications. Ccreate demo versions that are time-limited,
feature-limited, limited to a certain number of uses, or limited to a
certain # of concurrent network users.

Gruß VolkerW

Alexander 17. Mai 2006 16:26

Re: Testversion eines Programms schützen?
 
@Volker Fragt sich nur, ob es halbwegs sicher ist. Hat da jemand schon mal Erfahrung sammeln können?

Gibt es ähnliches auch für .NET?

volkerw 18. Mai 2006 09:25

Re: Testversion eines Programms schützen?
 
@Alexander
Wie sicher ist die Software, gute Frage. Um das zu erfahren, müßte man wohl mal ein paar Hacker auf so ein Programm loslassen.
Es gibt z.B. die Komponente TOgProtectExe, welche die Exe-Datei vor Veränderung schützen kann. Ich denke, das allein reicht schon aus, um den Gelegenheitshacker abzuhalten. Wenn ein Team gewiefter Profis sich damit beschäftigt, mag das anders aussehen, irgendwann fällt jeder Schutz. Siehe z.B. Kopierschutzmechanismen von CDs, erst als ultimativ sicher präsentiert, oft 3 Tage später geknackt. Tiefgreifende Erfahrungen habe ich mit TPOnGuard auch nicht, ich benutze es hauptsächlich dazu, um zeitabhängige Lizenzen zu generieren. Funktionen würde ich bei einer Demoversion nicht einschränken, denn das kann den Kunden unnötig verärgern, er soll schließlich eine Kaufentscheidung treffen. Für akzeptabel halte ich höchstens einen nagscreen wie z.B. beim TotalCommander oder UltraEdit, der mich beim Start des Programms immer daran erinnert, das meine Testzeit abläuft bzw. die Registrierung fällig ist.

Gruß Volker

merlin17 18. Mai 2006 11:46

Re: Testversion eines Programms schützen?
 
auf www.asprotect.com gibt es auch ein Schutzprogramm;
aber anlog zu TP sicher nicht unknackbar <g>

:-) thomas

Olli 18. Mai 2006 12:39

Re: Testversion eines Programms schützen?
 
Also, ich versuche es nochmal:
  1. Ganz richtig, nichts ist unknackbar. Du hast nur die Wahl zwischen
    • dein Programm ist so cool, daß es jemand knackt, weil er dadurch Ruhm erlangt (er will also was vom Ruhm deines coolen Programms abhaben) und
    • der Cracker ist gelangweilt oder will rausfinden wie er es knacken kann (Wißbegierde, Neugier)
    Beides gereicht dir als Entwickler kaum zum Vorteil. Auch dachte ich bis vor kurzem, daß es einen Konsens unter uns Reverse Engineers gibt, daß bestimmte Sprachen leichter zu reversen sind als andere - durch einen Beitrag auf Rootkit.com begann ich aber auch daran zu zweifeln.
  2. Lohnt sich der Aufwand für ein solches Schutzsystem. Gerade wenn du es anhand einer Anzahl (10) festmachen willst, ist dies keine Einschränkung bei der man andere Features weglassen kann. Abgesehen davon ist Shareware ja gerade Software, die ich innerhalb einer bestimmten Zeitspanne mit vollem Funktionsumfang testen kann.
  3. Zuguterletzt würde ich eher empfehlen den Preis und das Gewissen der Benutzer in eine gute Relation zu setzen. Beispielsweise könntest du im ersten Monat eine Aktion machen, wo du für den gleichen Preis ein oder mehrere Upgrades gleich mit einschließt, usf. Ein Hobby-Cracker schaut leider nicht nach der Zeit oder berechnet gar "seinen Gegenwert" anhand der gebrauchten Zeit und eines erreichbaren Lohnes. Deswegen sind die das größte Problem für dich. Jene die es für ihren eigenen Ruhm tun, wirst du auch kaum beeindrucken indem du ihnen ins Gewissen redest. Eines wirkt aber sehr oft: wenn man herausbekommen kann, von wem eine Raubkopie ausging, kann er zur Verantwortung gezogen werden. Sowas schreckt ab. Zusammen mit angemessenen Preisen ist das der bessere Schutz für ein Programm ... und Schüler, Studenten und andere geldfreie Gruppen stehen ja vielleicht garnicht auf der Liste mit deinen Zielgruppen (mutmaße ich mal).

Alexander 21. Mai 2006 19:07

Re: Testversion eines Programms schützen?
 
Ich hoffe Grolle hat nichts dagegen, wenn ich Thread noch mal hervor krame. Mich würde nämlich mal interessieren, ob jemand schon ähnliches für .NET Programme entdecken konnte. Ich habe bisher nichts gefunden.

Olli 21. Mai 2006 19:18

Re: Testversion eines Programms schützen?
 
Wenn du einen "Cruncher" meinst: Bei Google suchenDotfuscator

Lemmy1 21. Mai 2006 19:36

Re: Testversion eines Programms schützen?
 
Zu der Fragen zwecks Net/C#:
Ich verwende bei einem Kunden für .Net das Infralution Licensing System (ILS), zu haben bei hier.

Vorteil an dem System ist der sehr niedrige Preis und die leichte Verwendung. Außerdem kann man über einen benutzerdefinierten Text BELIEBIGE Informationen in einem Key hinterlegen, der via RSA signiert also "quasi" nicht zu knacken ist (sofern die Jungs einen guten Job gemacht haben). Beim Kauf gibt es auch den Quellcode in C# und VB.Net, so dass man die Sourcen direkt ohne extra Dll einbinden kann.

Nun zu den Nachteilen: Da es sich "nur" um eine API, die Keys generiert und validiert, wird das Programm nicht per-se sicher. Auch wenn ich den Aufwand für nicht vertretbar halte, Keys zu faken (sprich: Key-Generatoren zu schreiben), so liegt es eben in der Natur von DotNet Programmen, dass ein solcher Schutz sehr einfach auszuhebeln ist, wenn man die Exen/Dlls modifiziert.

Schutz gegen sowas kann man erreichen via Obfuscierung oder Exepackern. Aber der Effekt dürfte am Ende bescheiden sein.

Delphi:

Da ich in meiner eigenen Firma die Programme aber lieber mit Delphi Win32 programmier, hab ich dort eine andere Lösung: Via einer eigenen RSA/Hash/Verwaltung Library werden auf einem ASP.Net Webserver (Delphi.Net) automatisch Keys generiert. Die Logik dazu wird von dem Reseller ShareIt angestoßen. Die Win32 Anwendung validiert die Keys dann, da die EncodingLib auch dort kompiliert. Wenn der Key gültig ist, enthält er den Namen des Kunden, seine Adresse etc, die ich dann im About anzeigen kann. Ohne gültigen Key ist die Speichern-Funktion deaktiviert.
Bei Interesse kann ich diese Libarary ja mal veröffentlichen....müsste aber vorher darin etwas aufräumen.

Vorteile des Systems: Kunden müssen nur einmal was runterladen und ich muss auch nur eine Version am Server pflegen.
Nachteile: Wenn auch bedeutend schwieriger als unter .Net, so ist es doch möglich, auch das auszuhebeln. Die Keys zu faken halte ich auch hier für rechnerisch sehr schwierig. Am Exe-Hacken hindert den gewillten "Hacker" mit viel Zeit aber nix.

Alexander 22. Mai 2006 08:57

Re: Testversion eines Programms schützen?
 
Vielen Dank euch beiden. ILS scheint recht gut zu sein. Dotfuscator hört sich auch recht interessant, macht aber was anderes. Ich habe wie gesagt ja nur eine Lizensierungssoftware samt Demo-Versions Generator. Zumal Dotfuscator mir ein wenig zu teuer ist. Das lohnt sich nicht für mich...

Olli 22. Mai 2006 10:00

Re: Testversion eines Programms schützen?
 
Zitat:

Zitat von Alexander
Vielen Dank euch beiden. ILS scheint recht gut zu sein. Dotfuscator hört sich auch recht interessant, macht aber was anderes. Ich habe wie gesagt ja nur eine Lizensierungssoftware samt Demo-Versions Generator. Zumal Dotfuscator mir ein wenig zu teuer ist. Das lohnt sich nicht für mich...

Dotfuscator gibt es auch in einer Community Edition. Aber ich weiß nicht, über welche anderen Produkte man an die rankommt. Bei VS2005 ist sie jedenfalls dabei.

Lemmy1 22. Mai 2006 10:15

Re: Testversion eines Programms schützen?
 
Denk aber dran, dass die beiden Tools ganz was anderes machen: Dotfuscator macht er schwerer, Dein Programm zu decompilieren. ILS validiert Keys, schützt aber den Quellcode weder vor neugierigen Blicken noch vor Leuten, die ihn verändern wollen.

Wenn Du mal sehen möchtest, wie leicht sich C# code dekompilieren lässt: Lutz Roeder's Reflector. Klappt am Besten mit C# code, etwas schlechter mit VB.Net code und teilweise auch mit Delphi.Net binaries. (Mit Win32 Binaries natürlich gar nicht).


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:19 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