C++ source code verschlüsseln/ verstecken Linux

Ok Leute
Ich möchte mich an euch allen bedanken für eure Beiträge. Wirklich cool dass man in diesem Forum so schnell antworten auf seine Fragen bekommt.
Es war wirklich sehr Informatives Geschpräch. Es hat mich sehr geholfen. Und viel zum nachdenken gebracht.

Positiv finde ich zu wiessen, wie andere Leute über Softwares denken.
So was lernt man doch nicht vor einem Compiler Oder? :)

Ciao an alle
 
Zuletzt bearbeitet:
Ich habe so viel zeit in dieses Programm investiert und dabei einpaar Inovationen eigeführt.
Wenn Dein Programm Innovationen enthaelt werden diese frueher oder spaeter eh von anderen uebernommen, ob Dein Quellcode nun frei verfuegbar ist oder nicht. Man kann Sachen ja auch nachmachen ohne den Code zu kopieren. Ein Beispiel dafuer waere wohl z.B. ReactOS, welches zu Windows kompatibel ist, aber keinen Windows-Code enthaelt.

Wenn ich mein geheimnis preisgebe, ist meine Software nichts besonders.
Wie gesagt, wenn Du Innovationen zu bieten hast werden diese fuer sich sprechen. Ehrlich gesagt ist es aber anzuzweifeln dass Du allein, wie Du ja sagst, eine Konkurrenz zu Blender auf die Beine stellen kannst.
Sicher ist es moeglich auch allein ein Programm mit Innovativen Ideen zu schreiben, dennoch ist es schwer sich gegen ein alteingesessenes Programm zu behaupten.
Nimm doch dazu einfach mal den Vergleich Photoshop vs. Gimp. Gimp ist absolut kein schlechts Programm, und fuer 90% der User die mal hin und wieder was mit Grafik machen waere es auch vollkommen ausreichend. Dennoch laden sich viele lieber illegal Photoshop runter, eben einfach weil es Photoshop ist.

Wenn ich es eimal verkaufe steht er nächste Tag beim Blender und dann kann ich alles vergessen.
Wie gesagt, Du kannst Dich auch mit der Geheimhaltung des Sourcecodes nicht davor schuetzen dass innovative Funktionen uebernommen werden. Du selbst hast Dir doch sicherlich auch hier und da andere 3D-Programme angeschaut und Funktionen die Deiner Meinung nach sinnvoll sind in Deinem Programm implementiert.

Ich bin auch ein Einzelperson und kann nicht mal gegen die Verbeitung und Veränderung kein Schritt mithalten.
Gerade hier koennte Dir die Veroeffentlichung des Codes helfen. Denn dadurch wuerdest Du anderen die Moeglichkeit bieten Dir zu helfen, und Du braeuchtest die Leute nichtmal dafuer zu bezahlen.
Vor allem wenn Du, wie Du sagst, innovative Funktionen bietest werden diese sicherlich interessierte User anlocken.

Meine Meinung nach GPL ist gemacht nur Leute, die gerne Software kopieren "clonen" oder andauert verbessern, optimieren.
Eben nicht. Die GPL stellt sicher dass der Code frei verfuegbar bleibt. Dies hat meiner Meinung nach wesentlich mehr Vor- als Nachteile.
Mal ein Beispiel: Microsoft aendert mit jeder neuen Version von Office die Formate seiner Dateien. Wenn Du nun eine uralte Excel-Datei oeffnen willst koennte es zu Problemen kommen, wenn Microsoft entscheidet den Support fuer die alte Version fallen zu lassen.
Bei freier Software kannst Du aber auf die Spezifikation und oft auch den alten Code zurueckgreifen, und hast somit noch immer die Moeglichkeit die alte Datei zu oeffnen.

Der Zweg ihre Handlung könnte ehrlich sein aber auch schnelles Geld sein. Wenn jemand nicht Forschen möchte kann ein Opensource sehen und die Kernideen klauen.
Gerade das verhindert die GPL ja indem sie fordert dass Code in den GPL-Code eingeflossen ist auch wieder unter die GPL zu stellen ist. Es gibt hinreichend Faelle in denen bekannt wurde dass Hersteller GPL-Software genutzt haben und mussten spaeter dann auch die Quellen ihrer darauf basierenden Werke freigeben.
Siehe http://gpl-violations.org/

Uebrigens, ich bin garnicht mal sicher ob es fuer eine "GPL-Infektion" ausreicht gegen eine GPL-Library zu linken. Es ist eine Weile her dass ich zuletzt die GPL gelesen habe, also wuerd ich nicht drauf schwoeren.
Sicher ist aber dass wenn Du GPL-Code uebernommen hast dieser Deinen Code "infiziert" und dieser somit unter die GPL zu stellen ist.
Fuer Details empfehle ich die Lektuere der GPL, und zwar der Versionen unter denen die genutzten Libraries stehen.

Es kann nicht sein dass man ein ganze Projekt schreibt und eine Software (könnte Qt sein:) ) , die nur die Benutzerobrfächen tut, dich zwingt dein Code preiszugeben.
Warum nicht? Schau Dir doch einfach mal grosse Projekte wie z.B. KDE an? Ein riesen Projekt, mit wesentlich mehr Code-Zeilen als Dein Program, und es ist frei verfuegbar. Jeder kann es runterladen, den Code einsehen, veraendern und wiederverwenden.

Es ist wohl klar dass man GPL erfunden hat damit Programmieren an eine qualitativ kostenlose Programm suchtig werden und wenn schön süchtig sind, mussen sie entscheiden:
Entwerder nehme ich kostenlos der OpenSource und spiele einbischen, schreibe ein kleines programmchen und stelle es im Internet.
Oder wenn ich auf die Falle beisse, muss ich die Kostenpflichtige Version kaufen und kann mich damit von diese Last befreien. Dh ich muss für mein Rechte bezahlen.
Ich sehe das eher andersherum. Die GPL stellt sicher dass die Software die ich nutze frei verfuegbar ist und bleibt. Selbst wenn der jenige der das Programm urspruenglich entwickelt hat es nicht mehr fortsetzt wird durch diese Offenheit doch sichergestellt dass das Programm dennoch weiterentwickelt wird, vorausgesetzt natuerlich es hat ein gewisses Mass an Usern.

Bei kostenpflichtigen Programmen hingegen bezahlt man ja auch nur fuer das Nutzungsrecht. Und das war es. Windows gehoert dem User nicht, nur weil er einen Haufen Geld dafuer auf den Tisch gelegt hat, ihm wird dafuer nur erlaubt Windows zu nutzen. Und gerade bei solcher Software wird doch versucht den Kunden zu binden, damit er alle Jahre wieder viel Geld fuer eine neue Version auf den Tisch legt.

Also, wie gesagt, lies Dir die GPL mal durch, alle fuer Dein Projekt relevanten Versionen, denn ich bin nicht 100% sicher ob allein das Linken gegen eine GPL-Library zur Infektion ausreicht. Zur Zeit tendiere ich zu "wohl eher nicht", als Beispiel sei mal Skype genannt, welches auch QT und andere Libraries nutzt.
Code:
ldd $(which skype)
        linux-gate.so.1 =>  (0xffffe000)
        libasound.so.2 => /lib/libasound.so.2 (0x007f6000)
        libXv.so.1 => /usr/lib/libXv.so.1 (0x00d76000)
        libXss.so.1 => /usr/lib/libXss.so.1 (0x00d71000)
        librt.so.1 => /lib/librt.so.1 (0x005d4000)
        libQtDBus.so.4 => /usr/lib/libQtDBus.so.4 (0x0074e000)
        libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0x03e0d000)
        libQtNetwork.so.4 => /usr/lib/libQtNetwork.so.4 (0x006b3000)
        libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0x00365000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00adf000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00101000)
        libm.so.6 => /lib/libm.so.6 (0x00ab4000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00aff000)
        libc.so.6 => /lib/libc.so.6 (0x00952000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0x00b2b000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0x00c7d000)
        libdl.so.2 => /lib/libdl.so.2 (0x00c5d000)
        /lib/ld-linux.so.2 (0x00933000)
        libdbus-1.so.3 => /lib/libdbus-1.so.3 (0x008e6000)
        libQtXml.so.4 => /usr/lib/libQtXml.so.4 (0x00307000)
        libz.so.1 => /lib/libz.so.1 (0x00c68000)
        libgthread-2.0.so.0 => /lib/libgthread-2.0.so.0 (0x007bb000)
        libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x00215000)
        libaudio.so.2 => /usr/lib/libaudio.so.2 (0x001f3000)
        libXt.so.6 => /usr/lib/libXt.so.6 (0x005e6000)
        libpng12.so.0 => /usr/lib/libpng12.so.0 (0x00c35000)
        libSM.so.6 => /usr/lib/libSM.so.6 (0x00ddd000)
        libICE.so.6 => /usr/lib/libICE.so.6 (0x00d9d000)
        libXi.so.6 => /usr/lib/libXi.so.6 (0x006a8000)
        libXrender.so.1 => /usr/lib/libXrender.so.1 (0x002fc000)
        libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x007ed000)
        libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x00aad000)
        libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x00d8e000)
        libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x008e1000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00ce3000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00c8f000)
        libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0x00c29000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00b0d000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0x00afa000)
        libcap.so.1 => /lib/libcap.so.1 (0x001ee000)
        libexpat.so.1 => /lib/libexpat.so.1 (0x00cc0000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00c2d000)
Mir persoenlich ist es egal ob Du Deine Software als freie Software verbreitest oder nicht, aber wie ich in meinem ersten Post hier erwaehnt habe duerfte die Akzeptanz bei den Usern besser ausfallen wenn Du den Code freigibst.

Edit: Nein, sowas lernt man nicht durch die Nutzung eines Compilers, sondern durch die Arbeit an und mit freier Software.
Ich persoenlich arbeite mit Linux seit 1999, und hab seit einiger Zeit auch ein paar OpenSource-Projekte (siehe Signatur) wo ich meine Werke anderen Usern frei zur Verfuegung stelle.
Man muss sich fuer freie Software interessieren um sowas zu wissen, oder eben wie in Deinem Fall so ein Thema hier eroeffnen und dann mit den Informationen zum Thema beschossen werden. ;)
 
Also mich würde mal interessieren, welche neuen Innovationen dein Programm hat, welche noch kein Programm aufweisen kann.

MFG

Sascha
 
Ich möchte auch noch meinen "Senf" hinzufügen :)

Nehmen wir mal an, du hast es geschafft. Das Programm verkauft sich gut. Schön und gut, aber nach einer weile wenn eine neue Version von anderen Programmen rauskommen und diese eine "besondere" Funktion von deinem Programm in der neuen Version von der konkurrenz-Software nachprogrammiert und implemtiert ist, wirst du sehen, dass alles was ein Mensch programmiert/implementiert hat, nachprogrammierbar ist, wie andere vor mir darauf gedeutet haben. Das ganze könnte man mit dem Ingenieurs-Beruf vergleichen. Ingenieur A baut ein bahnbrechendes Produkt, Ingenieur B kauft sich das Produkt und versucht das Produkt besser herzustellen ggf. mit zusätzlichen Features(hoffe Features ist die richtige Wortwahl :))
 
Zuletzt bearbeitet:
Zurück