Dll Datei mit Zeitsperre erstellen
-
Hallo,
ich habe das Programm Dev-C++ mit dem ich .dll Dateien für eine Anwendung erstellen kann. Ich habe jetzt ein Kunden der möchte gerne eine Testversion von einem Programm von mir, das auch über eine .dll Datei funktioniert welche ich mit Dev-C++ erstelle.
Meine Frage ist kann man in die .dll Datei eine Zeitsperre einbauen das beispielweise die Zeit vom PC überprüft wird mit einer Zeitangabe in der .dll Datei, und wenn die Zeit vom PC schön älter ist soll die .dll Datei das erkennen, ich kann ja dann beispielweise alle Funktionen den Wert 0 zurückgeben lassen wenn die Zeit abgelaufen ist.
Also meine Frage it ob man das machen kann und wenn ja kann mir bitte jemand ein brauchbare Beispiel geben, ich programmiere nur sehr selten in C++ mit dem Program Dev-C++ und bin nicht so sehr damit vertraut und kann nur einem Beispiel am besten folgen.
Vielen Dank.
-
1. Das hat mit Dev-C++ nichts zu tun.
2. Nimm eine andere IDE wie Visual C++ 2008.Gegen Manipulation kann man sich bei so etwas nie zu 100% schützen. Vielleicht würde eine Einschränkung des Funktionsumfangs auch eine brauchbare Demo abgeben.
-
Hallo,
Ich habe aber nur das Programm Dev-C++ und möchte auch weiter das Benutzen.
Kannst du mir bitte ein Beipiel zeigen wie man es generell macht Zeitstempel überprüfen in der .dll Datei oder in einer Funktion, welche in der .dll Datei liegt?Ob ich den Dev-C++ Editor benutze oder ein anderen, es sollte doch mit beiden funktionieren. Ein Umstieg von ein Editor zum anderen wäre in meinem Fall viel zu umständlich und unnötig.
Danke.
-
kachbe schrieb:
Ob ich den Dev-C++ Editor benutze oder ein anderen, es sollte doch mit beiden funktionieren. Ein Umstieg von ein Editor zum anderen wäre in meinem Fall viel zu umständlich und unnötig.
Danke.Nein, der ist bitter nötig. DevC++ ist alt und verbuggt und wird nicht mehr weiterentwickelt. Nimm Visual C++ Express, das is kostenlos, ich favorisiere 2008 über 2010. Es gibt auch noch Code::Blocks oder Eclipse, alle gut, aber bitte kein DevC++.
http://www.c-plusplus.net/forum/viewtopic-var-t-is-237002.htmlUnd zu Deinem Problem..
Du hast Kundschaft für Deine Programmierkünste aber kennst time() nicht?^^
http://www.cplusplus.com/reference/clibrary/ctime/time/und natürlich _stat()
http://msdn.microsoft.com/de-de/library/14h5k7ff(VS.80).aspx
rya.
-
Danke für deinen Beitrag.
Ich benutzte Dev-C++ nur um ein mal im Jahr eine .dll Datei zu erstellen und programmier normal auf einer Anwendung mit eigener Programmiersprache und kenne mcih mit C++ nicht aus, ich kann aber Tutorial nacharbeiten wo etwas mit Beispielen steht, weil ich etwas Grundkentnisse habe in C++
Ich benötige es nicht oft eine kleine .dll Datei zu erstellen, deswegen wäre es alles zu umständlich für mich sich erst noch in ein neuen Editor ein zu arbeiten und ob Dev-C++ nun veraltet it oder nicht, würde ich erst versuchen mit dem die einfache Sache zu programmieren.
-
Das Visual Studio Express 2010 ist nur frei für den privaten Gebrauch, sobald man Software nicht nur für sich selbst schreibt sollte man sich die Lizenzbedingungen genau durchlesen.
-
kachbe schrieb:
Ich habe jetzt ein Kunden der möchte gerne eine Testversion von einem Programm von mir
Sinnvoller wäre es aus deiner sicht eine dll mit beschränkten Funktionen auszuliefern. Wenn man sich bei Zeitsperren nicht ein wenig Gedanken um verschleierten Code macht und sie nicht nur beim Aufruf sondern in jeder Funktion ausführt wird sie einfach mit einer Sprunganweisung ausgehebelt.
-
kachbe schrieb:
Ich habe jetzt ein Kunden der möchte gerne eine Testversion von einem Programm von mir, das auch über eine .dll Datei funktioniert welche ich mit Dev-C++ erstelle.
Also meine Frage it ob man das machen kann und wenn ja kann mir bitte jemand ein brauchbare Beispiel geben
Das kann man machen. Wie wäre folgendes: Du postest eine Beschreibung der Aufgabe ins Projekte-Forum und bietest eine kleinen Betrag als Aufwandsentschädigung für eine fertig programmierte Lösung an. Da du offenbar Kunden hast und dann wohl auch Geld mit denen verdienst, dürften ein paar Euro doch keine große Sache sein. Und du hast das beruhigende Gefühl, dir nicht wie ein Schmarotzer vorkommen zu müssen.
-
Der Kunde möchte leider eine kostenlose Testversion und es besteht keine garantier das er dann das Programm abkauft.
-
kachbe schrieb:
Der Kunde möchte leider eine kostenlose Testversion und es besteht keine garantier das er dann das Programm abkauft.
Es soll auch sein Recht sein das Programm zu überprüfen bevor er dafür bezahlt.
Geh hin und erstelle beim ersten Start in %APPDATA% eine Datei mit verschlüsseltem Installationsdatum oder Datum des ersten Starts. Frage beim Start diese Datei innerhalb der Applikation mit deinem Passphrase ab. Wenn die Datei nicht existiert oder irgendwie durch Manipulation nichts sinnvolles ergibt, dann verweigere den Start.
-
DocShoe schrieb:
Das Visual Studio Express 2010 ist nur frei für den privaten Gebrauch, sobald man Software nicht nur für sich selbst schreibt sollte man sich die Lizenzbedingungen genau durchlesen.
Das ist nicht korrekt. Bei Visual Studio Express 2010 gelten die selben Lizensbedingungen wie bei 2008. Das heißt das man damit ohne Einschränkungen auch kommerzielle Software herstellen darf.
http://social.msdn.microsoft.com/Forums/en-US/Vsexpressinstall/thread/0782e1b0-db87-4de3-b79d-ba56a481e750
-
Richtig! Alles was vor den Express Lizenzen kam (soweit ich mich entsinne), hatte diese Beschränkung, wie z.B. die "Anfängerversion" vom Vistual Studio 6, die dann sogar immer noch eine Messagebox mit reincompiled hatte. Da durfte man halt nicht kommerziell mit programmieren.
-
kachbe schrieb:
Hallo,
ich habe das Programm Dev-C++ mit dem ich .dll Dateien für eine Anwendung erstellen kann. Ich habe jetzt ein Kunden der möchte gerne eine Testversion von einem Programm von mir, das auch über eine .dll Datei funktioniert welche ich mit Dev-C++ erstelle.
Meine Frage ist kann man in die .dll Datei eine Zeitsperre einbauen das beispielweise die Zeit vom PC überprüft wird mit einer Zeitangabe in der .dll Datei, und wenn die Zeit vom PC schön älter ist soll die .dll Datei das erkennen, ich kann ja dann beispielweise alle Funktionen den Wert 0 zurückgeben lassen wenn die Zeit abgelaufen ist.
Also meine Frage it ob man das machen kann und wenn ja kann mir bitte jemand ein brauchbare Beispiel geben, ich programmiere nur sehr selten in C++ mit dem Program Dev-C++ und bin nicht so sehr damit vertraut und kann nur einem Beispiel am besten folgen.
Vielen Dank.Du hast Kunden, aber keine Ahnung. Erstaunlich.
-
erstaulich schrieb:
Du hast Kunden, aber keine Ahnung. Erstaunlich.
Was sollen den solche Sinnlosen Beiträge Kumpel, was willst du damit ereichen, dich als Superman darstellen. Du weist doch gar nicht was ich mache, willst du jetzt mit mir über irgendetwas diskutieren, hast du nichts besseres zu tun. An alle andere, ich habe dem "potenziellen" Kunden sogar den Oridginalcode übergeben ohne dll Verschlüsselungsversuchen.
-
kachbe schrieb:
erstaulich schrieb:
Du hast Kunden, aber keine Ahnung. Erstaunlich.
Was sollen den solche Sinnlosen Beiträge Kumpel, was willst du damit ereichen, dich als Superman darstellen. Du weist doch gar nicht was ich mache, willst du jetzt mit mir über irgendetwas diskutieren, hast du nichts besseres zu tun. An alle andere, ich habe dem "potenziellen" Kunden sogar den Oridginalcode übergeben ohne dll Verschlüsselungsversuchen.
Sich über solche Posts aufzuregen ist genausowenig hilfreich...
Nun, genug anregungen wie man die Zeitsperre umsetzen kann gab es ja schon, ich habe aber nochmal eine andere Frage:
Du hast gesagt Du hast eine eigene Programmiersprache die Du benutzt, aber wenig Ahnung von C++? Wie hast Du die Sprache denn erstellt und warum überhaupt? Bin ein wenig neugierig. ^^
-
Skalli schrieb:
Wie hast Du die Sprache denn erstellt und warum überhaupt? Bin ein wenig neugierig. ^^
Ich habe die Sprache nicht selbst erstellt, das ist einfach eine Anwendung die eine Sprache benutzt die ähnlich wie C++ ist und dewegen hatte ich mal C++ Grundkurs gemacht.
-
kachbe schrieb:
erstaulich schrieb:
Du hast Kunden, aber keine Ahnung. Erstaunlich.
Was sollen den solche Sinnlosen Beiträge Kumpel, was willst du damit ereichen, dich als Superman darstellen. Du weist doch gar nicht was ich mache, willst du jetzt mit mir über irgendetwas diskutieren, hast du nichts besseres zu tun.
du willst höchstwahrscheinlich mal geld von dem kunden und die leute hier sollten dir Code umsonst schreiben, kumpel.
-
erstaulich schrieb:
kachbe schrieb:
erstaulich schrieb:
Du hast Kunden, aber keine Ahnung. Erstaunlich.
Was sollen den solche Sinnlosen Beiträge Kumpel, was willst du damit ereichen, dich als Superman darstellen. Du weist doch gar nicht was ich mache, willst du jetzt mit mir über irgendetwas diskutieren, hast du nichts besseres zu tun.
du willst höchstwahrscheinlich mal geld von dem kunden und die leute hier sollten dir Code umsonst schreiben, kumpel.
Komm jetzt übertreib mal nicht freundschen, ich habe nur gefragt wie man eine kleine Sache macht, nämlich eine zeitangabe überprüfen, und die antworten haben mich stüzig gemacht da man es nicht so sicher verschlüsseln kann, nun habe ich dem Kunden aber einfach auf Vertrauenbasis den kompletten Code in original sogar gegeben.
Es handelt ich übrigens um ein automatisches Börsenhandelssystem für alle die neugierig sind und es genau wissen wollen, und solsche programme will man natürlich gerne etwas verschlüsseln, naja.
Ich wollte halt in die dll datei eine zeitsperre einbauen, dazu musste ich nur eben nachfragen bei euch wie man in C++ eine Zeitfunktion überprüft, dann hätte ich das in allen funktionen benutzt und die datei würde nur paar tage funktionieren danach sollte der kunde sich wieder melden und sagen ob er das handelssystem kaufen will oder nicht und jetzt hat er aber direkt den kompletten code so auf vertrauensbasis bekommen, weil ich keine zeit und lust mehr habe weiter zu forschen wie man das alles genau verschlüsseln kan, habe ich halt pech gehabt.
-
kachbe schrieb:
Der Kunde möchte leider eine kostenlose Testversion und es besteht keine garantier das er dann das Programm abkauft.
Das wird dein Kunde auch garnicht müssen, wenn er eins von den lustigen Tools besitzt, die dem Rechner nen Timestamp vorgaugeln, der in der Vergangenheit liegt und das Programm unter diesem Vorwand startet

Schau dir mal diese Funktionen an, wie bereits genannt:
http://www.cplusplus.com/reference/clibrary/ctime/Und besonders
http://www.cplusplus.com/reference/clibrary/ctime/time/Habs extra für dich rauskopiert

time_t seconds; seconds = time (NULL); cout << seconds << endl;Nun ... ein Tag hat 86400 Sekunden.
Vergleichen tut man mit > oder < oder <= oder auch >= und sogar ==
-
BasicMan01 schrieb:
kachbe schrieb:
Der Kunde möchte leider eine kostenlose Testversion und es besteht keine garantier das er dann das Programm abkauft.
Das wird dein Kunde auch garnicht müssen, wenn er eins von den lustigen Tools besitzt, die dem Rechner nen Timestamp vorgaugeln, der in der Vergangenheit liegt und das Programm unter diesem Vorwand startet

Schau dir mal diese Funktionen an, wie bereits genannt:
http://www.cplusplus.com/reference/clibrary/ctime/Und besonders
http://www.cplusplus.com/reference/clibrary/ctime/time/Habs extra für dich rauskopiert

time_t seconds; seconds = time (NULL); cout << seconds << endl;Nun ... ein Tag hat 86400 Sekunden.
Vergleichen tut man mit > oder < oder <= oder auch >= und sogar ==
Danke.
Die Syntax von C++ ist mir doch noch zu fremd ich müsste da stundenlang nochmal die Grundlagen durch lernen, aber kurz gefragt ist es nun möglich so was sicher zu verchlüseln mit der Zeitsperre oder ist das zu einfach zu umgehen für den User.Wenn ja gibt es überhaupt eine Möglichkeit sowas sicher und gut oder bestmöglich zu verschlüsseln, sodass die Funktionen dann nicht mehr funktionieren, vielleicht sogar gelöcht wrden aus der .dll Datei. Ich kann aber nicht vorher halbe Funktionen einbauen in das Programm, da das Handelssyste ja sont nicht funktioniert im Test.