Dll Datei mit Zeitsperre erstellen



  • 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.



  • Das vom Menschen ersonnene, kann auch vom Menschen wieder geknackt werden. Vor allem, wenn man auf dem Gebiet keine Ahnung hat, dann ist das ein Ding von Minuten. Zeitsperre in der DLL z.B. man kann die Zeitgeber Funktionen hooken und dann entsprechend immer das zurück geben was man will -> Ausgehebelt, oder aber man bearbeitet die DLL ein bisschen mit einem Debugger, wenn man weiß was man macht, kann man die ZeitIf immer wahr zurückgeben lassen -> Ausgehebelt.

    Da kann jetzt ein "Binary-Packer" helfen... Theoretisch... Es bietet einen entsprechenden Mehraufwand die DLL zu debuggen und zu verändern, aber es ist nicht unmöglich!

    Man könnte einen Test via Internet und Server abfragen machen, jedoch kann mann dann mit einem Package Sniffer, das Format entschlüsseln und dann sich einen eigenen Server nachbauen. Oder aber auch hier wieder entsprechend die DLL bearbeiten und das ganze rausschreiben.

    Am Ende kann man alles irgendwie umgehen... Dabei ist eine Zeitsperre noch das, was man am einfachsten umgehen kann...

    Soweit zumindest meine Recherchen auf diesem Gebiet... Letztendlich einfach die richtige Lizenz drauf auf das Produkt und dann entsprechend der erste sein der es Released und dann kannst du immerhin den gegenüber Verklagen, sofern er nicht nachweisen kann dass er es erstanden hat... Wobei ich mir nicht sicher bin inwiefern das Lizenzrecht überhaupt durchsetzbar ist...



  • Blackskyliner schrieb:

    Das vom Menschen ersonnene, kann auch vom Menschen wieder geknackt werden. Vor allem, wenn man auf dem Gebiet keine Ahnung hat, dann ist das ein Ding von Minuten. Zeitsperre in der DLL z.B. man kann die Zeitgeber Funktionen hooken und dann entsprechend immer das zurück geben was man will -> Ausgehebelt, oder aber man bearbeitet die DLL ein bisschen mit einem Debugger, wenn man weiß was man macht, kann man die ZeitIf immer wahr zurückgeben lassen -> Ausgehebelt.

    Da kann jetzt ein "Binary-Packer" helfen... Theoretisch... Es bietet einen entsprechenden Mehraufwand die DLL zu debuggen und zu verändern, aber es ist nicht unmöglich!

    Man könnte einen Test via Internet und Server abfragen machen, jedoch kann mann dann mit einem Package Sniffer, das Format entschlüsseln und dann sich einen eigenen Server nachbauen. Oder aber auch hier wieder entsprechend die DLL bearbeiten und das ganze rausschreiben.

    Am Ende kann man alles irgendwie umgehen... Dabei ist eine Zeitsperre noch das, was man am einfachsten umgehen kann...

    Soweit zumindest meine Recherchen auf diesem Gebiet... Letztendlich einfach die richtige Lizenz drauf auf das Produkt und dann entsprechend der erste sein der es Released und dann kannst du immerhin den gegenüber Verklagen, sofern er nicht nachweisen kann dass er es erstanden hat... Wobei ich mir nicht sicher bin inwiefern das Lizenzrecht überhaupt durchsetzbar ist...

    Hallo,
    vielen Dank für deine hilfeiche Antwort, ich habe ähnliche Sachen immer wieder gehört das es doch irgendwie möglich ist auch .dll Dateien zu entchlüsseln.
    Es gibt noch zwei Möglichkeiten über die ich nachdenke, und wegen dem Lizenzrecht wird es auch sehr schwer bis unmöglich für mein Handelsystem sowas zu bekommen.
    1. Wenn ich über ein Webservice den User eine Datei zur Verfügung stelle, welche die Berechnungen durchführt, anstatt die Berechnungen in der .dll Datei zu packen. Dann würde die Anwendung eine Verbindung zu mein Webserver aufbauen müssen um die Funktionen zu benutzen, ist sowas eine sichere Lösung, weil den Code der funktionen selbst hat der User ja nicht?

    2. Wenn das auch nicht klappt besteht nut noch die Möglichkeit Signale zu versenden und kein Programmcode irgendjmand zu übergeben.


  • Mod

    kachbe schrieb:

    1. Wenn ich über ein Webservice den User eine Datei zur Verfügung stelle, welche die Berechnungen durchführt, anstatt die Berechnungen in der .dll Datei zu packen. Dann würde die Anwendung eine Verbindung zu mein Webserver aufbauen müssen um die Funktionen zu benutzen, ist sowas eine sichere Lösung, weil den Code der funktionen selbst hat der User ja nicht?

    Ja, das wäre sicher, wenn du und dein Kunde sich darauf einlassen. Denn wenn zum Beispiel dein Server ausfällt, dann bist du Schuld, dass der Kunde nicht mehr mit der Software arbeiten kann.



  • Es gibt nur eine Möglichkeit, so etwas wirklich 100% sicher hinzukriegen: wenn der Benutzer nicht an die Software rankommt. Also wenn sie zum Beispiel auf einem Server läuft und der Kunde über das Internet sie nur bedienen kann und die Ausgabe des Programms sieht.
    Sobald du die Software aus der Hand gibst, ist die Sicherheit futsch. An dem Problem haben sich schon ganz andere die Zähne ausgebissen.

    Ohne dich beleidigen zu wollen, frage ich mich, ob deine Software wirklich einen großen Aufwand wert ist. Deine bisherigen Fragen lassen vermuten, dass du nicht gerade ein erfahrener Entwickler mit einer tollen, unbezahlbaren Software bist, sondern statt dessen eher froh sein kannst, überhaupt "Kunden" zu haben. Vielleicht wäre es ja sinnvoller, dem Kunden ein bisschen Vertrauen entgegen zu bringen und es bei einer einfachen Anzeige wie "DEMOVERSION" im Programm zu belassen? Du kannst sowieso nichts umsetzen, was nicht ganz einfach knackbar wäre, und den Benutzer mit komischen Mechanismen zu gängeln ist auch nicht geschäftsfördernd.

    Nichts für ungut.



  • Ich kann dir dennoch nur raten dass du dich lieber auf das Programm als den Kopierschutz konzentrieren solltest.

    Ich habe bisher noch nie einen Kopierschutz gebraucht und kann auch nicht verstehen warum da so ein Aufwand betrieben wird. Jeder Kunde ist sich bewusst, dass es bei nicht lizenzierter Software auch keinen Support gibt.



  • darkfate schrieb:

    Ich kann dir dennoch nur raten dass du dich lieber auf das Programm als den Kopierschutz konzentrieren solltest.

    Ich habe bisher noch nie einen Kopierschutz gebraucht und kann auch nicht verstehen warum da so ein Aufwand betrieben wird. Jeder Kunde ist sich bewusst, dass es bei nicht lizenzierter Software auch keinen Support gibt.

    Hallo, es handelt sich ja um ein Börenhandelssystem was ich verkaufen möchte, wenn das Programm an eine Peron verkauft habe, kann diese Person es lebenslang weiter benutzen oder auch selbst weiter verkaufen als eigenes Produkt, und das will ich verhindern das jemand es als eigenes Produkt weiter verkauft und ich denke ich kann es doch nicht verhindern also muss ich es akzeptieren oder sein lassen das zu verkaufen.

    Ich möchte es aber schon gerne verkaufen, immerhin kann ich mir selbst o mehr Startkapital für mein Konto ansammeln.



  • bau ein paar bugs ein, dann meldet der kunde sich schon, wenn er es haben will und die bugs gefixt werden müssen.



  • kachbe schrieb:

    ...

    Du kannst dir ja einen Tag nehmen und die Software installieren und dem Kunden vorführen und nachdem du gehst einfach deinstallieren.


Anmelden zum Antworten