| |
|
|
- Page 1 - |
|
Torsten Rümker | Hallo erstmal.
Ok, mir war gerade langweilig und da ist mir eine neue (?) Möglichkeit eingefallen, wie man dafür sorgen kann, das ein Programm nicht unbegrenzt weitergenutzt werden kann. KompilierenMarkierenSeparieren Ok, also mit diesem Code corre das Programm eine Woche lang nach dem compilieren und dann ist schluß. Naja solange bis jemand am Datum der File rumpfuscht
MfG Torsten |
|
|
| Ich lerne, ob ich will oder nicht! Betriebssystem: - Ubuntu 15.x - Windows (diverse) XProfan Version: X2 | 14.05.2006 ▲ |
|
|
|
|
| |
|
- Page 1 - |
|
Sven Bader | Auch nicht die feine Art aber ich denke, dass es viele so machen:
Ich schreibe einen Unix Timestamp irgendwo in die Untiefen der Registry und ziehe ihn beim nächsten Start vom aktuellen Timestamp ab. Nun habe ich die Differenz in Sekunden, geteilt durch 86400 sind es Tage. 30 - tage& sind dann die verbleibenden Tage der Testzeit. Nun prüfe ich, ob der Wert größer 30 ist also jemand manipuliert hat oder ob er kleiner 0 ist, sprich die Zeit abgelaufen ist. Der Wert bleibt naturalmente auch nach Deinstallation bestehen, wäre sonst einfach zu umgehen. Beim Start muss vor den Auslesen geprüft werden, ob der Schlüssel vorhanden ist, falls nicht wird er erst erstellt.
Zum Thema zumüllen der Registry: langsamer wird dadurch nichts, solange man keine Menüerweiterungen oder so erstellt, es ist ja eine Datenbank die durch Dimensione nicht langsamer wird. In diesem Fall sind es auch keine 20 Byte.
Die now() Funktion stammt aus dem Wettbewerbsbeitrag 2006 von Clemens Datum und Uhrzeit berechnen KompilierenMarkierenSeparierenDef RegOpenKeyEx(5) !"ADVAPI32","RegOpenKeyExA"
PROC DaysLeft
declare key$,handle#, datum&
key$ = ".lol" erfundener dateityp
dim Handle#,4
if (RegOpenKeyEx($80000000,Addr(key$),0,1,Handle#)=0) Registryschlüssel nicht vorhanden
datum& = val(ReadIni$( "HKEY_0", key$,""))
else
WRITEINI "HKEY_0",key$,""= str$(now())
datum& = now()
endif
dispose handle#
return int(30-(now()-datum&)86400)
Endproc
print str$(DaysLeft()) + " übrig"
|
|
|
| |
|
|
|
Torsten Rümker | So, jetzt muß ich auch noch mal was sagen. Ich wollt ja nicht gleich Grundsatzdiskussion auslösen
Da schreibt man mal ein Codesnipsel, das einem Einfällt wenn man Langeweile hat,
Also: Ich selbst benutze Laufzeitbegrenzungen im solito Sinne gar nicht. sondern beschränke einfach die Möglichkeit updates zu erhalten. Das ist relativ einfach, da ich kein einziges Programm habe, das ich wirklich als Fertig bezeichnen würde. Das ist zwar nicht allzu sicher, aber da ich a) grundsätzlich den Leuten vertraue und b) eher spezielle Programme per den Eigenbedarf (bzw. per den Einsatz in meiner Firma) schreibe, reicht es mir aber.
MfG Torsten |
|
|
| Ich lerne, ob ich will oder nicht! Betriebssystem: - Ubuntu 15.x - Windows (diverse) XProfan Version: X2 | 12.06.2006 ▲ |
|
|
|
|
| [quote:38318b2941=TS-Soft]Renommierte Programmierer machen sowas nicht. Wenn jemand sowas macht, zeigt dies nur seine Programmierschwäche auf (gibt bessere Lösungen). [/quote:38318b2941] Du redest hier vielleicht von einem ganzen Industriezweig welcher sich u.A. damit beschäftigt wie man Lizenzen vergibt. Das rechtfertigt keine Programmierschwäche.
Ein einfaches Beispiel aus dem Leben: Ich denk mal jeder wird schon eine WindowsKopie übers Internet Lizensiert haben. Ich habe noch nicht erlebt das ein Windowskäufer sich circa dieses Verfahren beschwert hat - ganz im Gegenteil - er bekundet gerne das es seins ist - er hats ja auch bezahlt. Natürlich empfinden Nichtkäufer hingegen sehr viel öfter das dies ein möglicher Verstoß Ihrer *Irgendwas* darstellt.
[quote:38318b2941]Wer sich drauf einläßt ist aber auch selber Schuld und fördert sowas auch noch[/quote:38318b2941] Naja das klingt ein wenig nach Verurteilung zumal der Satz selbst allgemeingültig ist. |
|
|
| |
|
|
| |
|
- Page 2 - |
|
|
RGH | [quote:34343f5d18=iF]Ein einfaches Beispiel aus dem Leben: Ich denk mal jeder wird schon eine WindowsKopie übers Internet Lizensiert haben.[/quote:34343f5d18] Nun, das geht auch telefonisch, da bei Weitem nicht jedes Notebook ohne weiteres ins Internet kommt. Nicht jedes Noteebook und nicht jeder Anwender hat WLan und auch der Internetzugang selbst ist noch nicht überall selbstverständlich. Und bei Weitem nicht jeder der Internet hat, hat auch eine Flatrate. Und bei allen anderen verursacht Datentransfer Kosten. (Zudem werden die meisten Computer und Notebooks mit einem bereits registrierten Windows XP verkauft, so dass Otto Normaluser diese Hürde nicht mehr nehmen muss.)
Ich denke, bei einem renommierten Spielehersteller hätte ich weniger Probleme, mich auf eine Internetregistrierung einzulassen, und per diesen Zugriff meine Firewall zu öffnen. Aber wenn ein Programm eines mehr oder weniger unbekannten Share- oder Freewareprogrammierers nach Hause telefonieren will, dann lasse ich dieses naturalmente nicht zu. Und ich denke, alle die hier mitlesen (mich eingeschossen) zählen eher noch (!) zur zweiten Gruppe.
Aber wenn das Programm darauf hinweist daß es eine Intrernetverbindung nutzt und aufbaut und dem User nicht nur erklärt, was gesendet und empfangen wird, sondern ihm auch die Möglichkeit gibt, alternativ das Programm abzubrechen, dann ist es ja in Ordnung. Und bei einemem Programm einer bekannten Firma würde ich mich auch darauf einlassen. (Denn wenn eine bekannte Firma hier unrechtmäßiges macht, wäre das sehr schnell in der Presse, siehe z.B. SONY mit seinen Rootkits als Kopierschutz.)
Und gegen das Schreiben von Daten in die Registry spricht auch nichts, solange die Deinstallationsroutine des Programmi diese Daten dann auch wieder ordnungsgemäß löscht.
Saluto Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 13.06.2006 ▲ |
|
|
|
|
Frank Abbing | [quote:3745e6534e]Ich denke, bei einem renommierten Spielehersteller hätte ich weniger Probleme, mich auf eine Internetregistrierung einzulassen, und per diesen Zugriff meine Firewall zu öffnen. Aber wenn ein Programm eines mehr oder weniger unbekannten Share- oder Freewareprogrammierers nach Hause telefonieren will, dann lasse ich dieses naturalmente nicht zu. Und ich denke, alle die hier mitlesen (mich eingeschossen) zählen eher noch (!) zur zweiten Gruppe.[/quote:3745e6534e] Denke ich auch und kann da nur zustimmen.
[quote:3745e6534e]Aber wenn das Programm darauf hinweist daß es eine Intrernetverbindung nutzt und aufbaut und dem User nicht nur erklärt, was gesendet und empfangen wird, sondern ihm auch die Möglichkeit gibt, alternativ das Programm abzubrechen, dann ist es ja in Ordnung. [/quote:3745e6534e] Roland, du sprichst mir aus dem Herzen. |
|
|
| |
|
|
|
| Ich finde wegen dem Aufzählen von Selbstverständlichkeiten ist dieser Thread ganzschön verunstaltet worden.
Da wir hier im Programmiererboard sind sollte sich das Ganze auf die technischen Aspekte stützen - ich finde es sehr schade das sich bei solchen Argomenti oft das find ich böse und das ist ok-Postings ergeben. Sowas gehört eher in den Stammtisch.
Die Überschrift lautet Laufzeitbegrenzung sehr simpel und unsicher und nicht was finden die Programmierer hier unter welche Umständen OK.
Das wir alle gegen unseriöses Verhalten sind ist per mich eine Selbstverständlichkeit und jeder, welcher hier ehrenrührige Zwecke verfolgt wird nicht unter 3 Doppelklicks bestraft. Aber dieses huch bloß nix von wo Laden oder Übertragen- Getue ist mir dann doch langsam ein wenig circa - besonders wenns nen Thread versaut welcher sich absolut auf die technische Umsetzung von Problemem bezieht.
Folgendes Extremszenario: Wie funktioniert ein Virus unter Programmazione/Allgemein/Einsteigerfragen, dann finde ich es absolut nicht in Ordnung wenn sich jemand darüber echauffiert das diese Frage gestellt wurde! Auch wenn es komisch erscheint sollte entsprechend professionell geblieben werden. Sonst wäre es der Stammtisch! Hinweise wie Viren sind böse und schlecht und Co sind dann fehl am Platz. Thomas würde möglicherweise ein Posting mit dem Inhalt wer Viren programmiert ist ein schlechter Programmierer abrunden. Wenn jemand nichts programmiertechnisches zum Thema abliefern möchte ist das naturalmente OK, und von den Admins wie mir wird naturalmente auch verlangt das mögliche KomplettBauAnleitungen zu Viren auch zensiert werden - aber geplänkel wie böse und schlecht doch die Viren sind hat unter Programmazione/Allgemein/Einsteigerfragen nicht vordergründig etwas zu suchen und schon garnicht derart das ein Thread verlenkt wird. Ich bitte sich zu erinnern das dies als Extremszenario von mir gewählt wurde.
Natürlich haben Roland und Frank absolut recht mit dem Gesagtem - es spielgelt voll und ganz naturalmente auch meine Meinung wieder.
Die Frage war also Laufzeitbegrenzung sehr simpel und unsicher: jemand noch eine Idee? |
|
|
| |
|
|
|
Torsten Rümker | [quote:09a35d1a65=iF]Die Frage war also Laufzeitbegrenzung sehr simpel und unsicher: jemand noch eine Idee?[/quote:09a35d1a65] Jep, genau das war mein Anliegen iF
Wie auch immer ich hatte gehofft von anderer Seite alternative Proposte per eine simple Laufzeitbegrenzung zu bekommen, ohne das ich auf eine extreme Sicherheit dieses mechanismus besonderen Wert lege. Esperienza kann man JEDEN Mechanismus dieser Art irgendwie aushebeln, was ich wie ich zu meiner Schande gestehen muß bereits selber gemacht habe, um einen Testzeitraum der arg zu eng kalkuliert war zu verlängern. (Ich weiß macht man nicht, aber ich habe jedes Programm, das ich so behandelt habe kurze Zeit später immer entweder gelöscht, oder gekauft.)
MfG Torsten |
|
|
| Ich lerne, ob ich will oder nicht! Betriebssystem: - Ubuntu 15.x - Windows (diverse) XProfan Version: X2 | 14.06.2006 ▲ |
|
|
|
|
Carlo Keil | Nachdem alle Boxhandschuhe weggepackt wurden und wieder Friede, Freude, Eierkuchen (hmmm, lecker) herrschen, nochmal zum Kern der Sache.
Ein Vergleich mit dem Systemdatum ist offensichtlich absolut witzlos. Den hebelt heut fast jeder Amateur aus, wenn er nicht gleich eine Software benutzt, die das macht. (Hab ich zu Win 3.1-Zeiten mal gefunden. Das Programm hat als Programmstarter gearbeitet und sich beim ersten Start das Datum gemerkt und vor jedem späteren Start zurückgesetzt. Klevererweise wurde das Systemdatum dann eine vorwählbare Anzahl von Sekunden nach dem Programmstart wieder zurückgesetzt, so dass man fast sofort wieder eine korrekte Datumsanzeige hatte) Wer hat da gesagt Interessante Idee? (Könnte mir bitte einer der Smiley-Artisten hier einen mit drohenden Zeigefinger hin machen? Danke) Mein früher benutztes Gegenmittel bestand darin, das Datum einiger File im System- und Temporärbereich sowie in den Papierkörben zu kontrollieren: jüngeres als aktuelles Datum gefunden? Dann Exitus oder einfach eine wichtige Funktion wie sichern oder neu sperren.
Meine persönliche Vorliebe ist aber ein prinzipiell anderes Vorgehen: ich schränke nicht den Funktionsumfang oder die Laufzeit ein, sondern das Mengengerüst. Wer mit zehn Datensätzen oder zwei Druckseiten auskommt, der soll das Programm halt so benutzen. Er würde es eh nie registrieren, sorgt aber so trotzdem per Verbreitung.
Saluto Carlo |
|
|
| |
|
|
|
Nico Madysa | Und zum geheimen Speichern vom Datum habe ich eine andere Methode als die Registry, die sowieso bei sowas sofort verdächtigt wird. Einfach im System- oder Programmverzeichnis eine possibile unauffällige File anlegen, die niemand verdächtigt, etwas Wichtiges zu sichern. Bei einem Spiel potuto man sie z.B. Map.001 oder so nennen. Das ist jetzt naturalmente nur ein Beispiel, dass auch leicht überlistet werden kann. Es baut halt darauf auf, dass der User nicht da guckt, wo es am logischsten ist. |
|
|
| |
|
|
|
| Bedenke hierbei das oft das Schreiben in Systemverzeichnisse verwehrt sein kann - wg. Privilegien. |
|
|
| |
|
|
|
| Verstecken in einer Bilddatei ist auch nicht viel schwerer und gängige Praxis |
|
|
| |
|
|
|
Clemens Meier | Ich finde, eine gewöhnliche, aber verschlüsselte (beispielsweise mit Adler32) Konfigurationsdatei ist am besten. Viele stecken zwar Daten in die Registry oder in un ini-File, aber wenn man zum Beispiel alle Texte und vorgegebenen Werte in un Konfigurationsdatei steckt, dazu naturalmente auch das jeweilig letzte Datum/Uhrzeit des Beendens des Programmi, ist das professionell und vor allem in Bezug auf Flexibilität eine sehr gute Möglichkeit.
Natürlich kann man Adler32 oder andere Verschlüsselungstechniken knacken, aber ein normaler User wohl kaum, zumal es bei einigen Techniken Jahre dauern würde. Und auch das Abspeichern des Zeitpunktes beim Beenden des Programmi ist nicht sicher und der User kann mit Tricks seine Version länger gebrauchen, als vom Programmierer vorgesehen.
100% Sicherheit gibt es nicht, egal welches Verfahren man anwendet. Obwohl, das stimmt nicht ganz, ich wollte einmal eine Trialversion installieren, die mir während der Installation schon mitteilte, dass sie abgelaufen sei und ich endlich die Vollversion kaufen solle. Klar, habe ich |
|
|
| |
|
|