Dll Datei mit Zeitsperre erstellen



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



  • darkfate schrieb:

    kachbe schrieb:

    ...

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

    Das wäre zwar eine gute Lösung aber ich kann ja nicht wegen Verkaufpreis von 500 Euro durch die Welt reisen, die Leute sind ja weltweit die es kaufen können, deswegen wäre das zu kompliziert auf die weise.



  • Dann mach ne Demo, wo die wichtigsten Features nur halb funktionieren... So im Sinne von:

    Aktienübersicht auf 5 Aktien beschränken oder was auch immer. Aber nicht mit ner IF sondern richtig hardcoded, sonst isses einfach zu knacken. Halt die Ergebnisse der Software auf eine Anzahl beschränken 🙂

    Das kann man zwar auch wieder ändern, aber ist aufjeden Fall besser als andere Ideen.



  • Blackskyliner schrieb:

    Dann mach ne Demo, wo die wichtigsten Features nur halb funktionieren... So im Sinne von:

    Aktienübersicht auf 5 Aktien beschränken oder was auch immer. Aber nicht mit ner IF sondern richtig hardcoded, sonst isses einfach zu knacken. Halt die Ergebnisse der Software auf eine Anzahl beschränken 🙂

    Das kann man zwar auch wieder ändern, aber ist aufjeden Fall besser als andere Ideen.

    Danke, die Lösung hatte ich auch im Sinn, das Problem dabei ist das die Leute das Programm immer gerne paar Wochen im Livehandel testen möchten bevor sie es kaufen und damit es im Livehandel funktioniert muss ja der originalcode alles ausrechnen, nur halbe Sachen würden ein halbes Ergebniss bringen das niemand gefällt und dann will auch niemand das programm kaufen.



  • Danke, die Lösung hatte ich auch im Sinn, das Problem dabei ist das die Leute das Programm immer gerne paar Wochen im Livehandel testen möchten bevor sie es kaufen und damit es im Livehandel funktioniert muss ja der originalcode alles ausrechnen, nur halbe Sachen würden ein halbes Ergebniss bringen das niemand gefällt und dann will auch niemand das programm kaufen.

    Wäre ich der Boesewicht, würde mich weniger der Code sondern mehr das Prinzip dahinter intressieren. Das hasst aber scho geschnallt.

    Technisch gesehen kannst Deine Ideen nicht schützen. Rechtlich gesehen aber schon.

    Du hasst also merhere Möglichkeiten:

    Dem Reengeneering soviel Steine in den Weg zu legen, und dabei den Lizenzpreis so gering halten, das es sich fuer den Potentiellen Boesewicht nicht lohnt das Ding nachzubauen.

    oder

    Du schuetzt deine Idee (Patentrecht), und musst dann auf irgendeinen Weg erfolgreich sein, um deine Rechte auch durchsetzen zu koennen. (wir wissen alle hier in Deutschland: "Recht haben" != "Recht bekommen")

    oder

    Du pfeiffst auf deine Idee, bzw die Rechte dran, bzw die Idee iss soweiso nicht schuetzenswert, dann Lass dir deine Entwicklungszeit/Support bezahlen.
    Mach ne version die mehr recht als schlecht funktioniert, aber wo man die Prinzipien erkennt, und dann sag der intressierten Firma dass paar Euro und paar Monate spaeter das Programm genau das machen wuerde, was die Firma erwartet. Unter welcher Lizenz das steheh sollt, kannst ja aushandeln.
    So verdienen die meisten SW-Entwickler Ihr geld, direkt oder indirekt.

    Dein problem waer eher, das die Idee dann nicht mehr Dein kapital waere, sondern deine Programmierkentnisse. Und sich die Firma immer entscheiden koennt, deine Idee aufzugreifen und es wem anderes, professionelleres entwickeln zu lassen.
    Aber im Bereich der SW-Entwicklung iss das nu mal so ...

    Ciao....


Anmelden zum Antworten