C++ source code verschlüsseln/ verstecken Linux

Sokrates3D

Grünschnabel
Hi, ich habe eine 3D Software unter SuSe 10.0 entwickelt.
http://sokrates3d.de.tl
Obwohl ich in C++ gute Kenntnisse habe, habe ich keine Ahnung im Bereich der Software Verpackung.
Ich möchte gerne meine Source Code verbergen ,damit ich sie von meiner Website zum download anbiete.

Hat jemand eine Idee wie das geht?

1. Den Quellcode der Software zu verbergen/verschlüsseln;-].
2. Bevor man die Software installiert, sollte eine Kontrolle nach vorhandenen libs in
jeweiligem Rechner stattfinden.

Die Software benutzt Qt Bibliothek und ist mit make Compiliert.
freue mich auf jedem Hinweis
Ciao Jiannis:)
 
Zuletzt bearbeitet:
Ich glaub nicht dass das geht, zum selber Kompilieren braucht man halt die Source und ansonten musste wohl Binarys anbieten.
 
Ich glaub nicht dass das geht, zum selber Kompilieren braucht man halt die Source und ansonten musste wohl Binarys anbieten.

Danke für deine Antwort ich glaube es wäre besser nicht den Sorcecode zum selber selber Kompilieren anzubieten. Könntest du was konkreter über Binarys erzählen? Kennst du irgend ein Programm oder Befehle unter Suse das das macht?
 
Zuletzt bearbeitet:
Nachdem du den Quelltext kompilierst entsteht eine Anwendung( Binary, .. ).

PS: Oder habe ich dich falsch verstanden, und du wolltest was ganz anderes wissen?!
 
Nachdem du den Quelltext kompilierst entsteht eine Anwendung( Binary, .. ).
!

Wenn ich kompiliere kriege ich eine "Auführbare datei". Diese sieht wie ein hellblau ring aus. ich weiss nicht ob sie die Binary ist. ist sie?
Wenn ich dadrauf clicke wird das Programm ausgeführt.

Aber wenn ich diese auführbare datei in eine andere rechner tue wird sie ausgeführt?
Ich vermutte nein, weil die Paths und die libs, die meine Software benutzt, fehlen. Aber wenn man andere Software
installiert , wird erstmal kontrolliert ob alle Resourcen vorhanden sind, und wenn ja werden sie Installiert.

Jetzt was muss ich programmieren
1. damit meine Software die libs an dem Rechner sucht und die PATHS setzt und danach
2.das Programm ohne den Sourcecode installiert?
Muss ich ein Skript schreiben? Wenn ja, wie Sieht es aus...

Ps: mein Programm läuft unter SuSe Linux
 
Zuletzt bearbeitet:
Die ausfuehrbare Datei auf die Du da klickst um das Programm zu starten nennt sich im Volksmund Binary, da es eben Binaerdaten enthaelt.

Wenn Du den Source nicht freigeben willst, was, nebenbei bemerkt, nicht der Philosophie hinter Linux entspricht (aber das ist ja im Grunde Deine Sache), und trotzdem Abhaengigkeitspruefung und sowas willst dann solltest Du ueber Paketformate wie RPM nachdenken.

Um die groesstmoegliche Verbreitung zu erlangen reicht es aber nicht RPM zu liefern, DEB-Pakete (fuer Debian und Derivate) sind auch noetig, zusaetzlich dazu ist auch RPM nicht gleich RPM, denn verschiedene Distributoren die auf RPM setzen nennen ihre Pakete durchaus auch mal anders, was dafuer sorgen kann dass ein Suse-RPM die notwendigen Pakete in Fedora nicht findet, weil sie anders heissen.

Nun zur Kompatibilitaet des Binaries: Solang Du Dein Programm nicht so uebersetzt dass es zu viele Abhaengigkeiten mit der Hardware hat (z.B. auf den Athlon optimiert, oder gar auf X86_64) sondern eher generisch ist (z.B. i386, i586 oder auch i686, je nachdem wie kompatibel Du sein willst) sollte das Programm portabel genug sein.

Pfade zu Libraries sind nicht fest einkompiliert, diese werden bei der Ausfuehrung gesucht. ldconfig, die ld.so.conf und vor allem die mittels der beiden Dateien (ersteres ist ein Programm) erstellte ld.so.cache sind dabei behilflich.
Aehnlich wie mit PATH fuer Binaries gibt es auch einen Library-Path, und Libraries die dort liegen werden auch gefunden. Dadurch ist es egal ob das Programm beim kompilieren die libxslt.so in /usr/lib gefunden hat und sie bei der Ausfuehrung nun in /usr/local/lib liegt.

Uebrigens, um Pakete zu bauen gibt es (oder gab, weiss nicht ob es das noch gibt) einen Build-Service von Suse. Wenn ich mich recht erinnere ist dieser kostenfrei, ich weiss aber nicht ob die Lizenzbestimmungen eventuell mit Deinem Vorhaben den Quellcode nicht zu veroeffentlichen kollidieren.
Vorteil dieses Build-Server ist dass Du fertige Pakete zur Verteilung bekommst, und das wohl nicht nur fuer Suse sondern auch andere verbreitete Distributionen.

Zum Abschluss noch was zum Thema Quellcode: Da Du den Quellcode nicht freigeben willst werden Dir viele Tueren verschlossen bleiben. Selbst wenn Dein Projekt waechst und gedeiht wird Dir die Aufnahme in viele beliebte Distrubitionen, darunter unter anderem Debian, Fedora und OpenSuse, verschlossen bleiben. Zusaetzlich gibt es dann noch die User die aus ideologischen Gruenden von Deiner Software abstand halten werden, ganz einfach weil kein Source verfuegbar ist.
Auch bist Du, wie aktuell, auf eigenes Hosting angewiesen, denn bei Sourceforge wirst Du mit Deinem Projekt wohl nicht unterkommen koennen. Das kann bei groesserer Verbreitung durchaus zu einem Kostenfaktor werden.
Zusaetzlich hast Du das "Problem" dass Du allein am Code arbeitest. Das verlaengert die Releasezyklen und verhindert dass andere Bugs ausmerzen koennen oder zusaetzliche Funktionen beisteuern koennen.

Zu guter Letzt sei noch das Problem erwaehnt dass Du Dich mit etablierteren Programmen zu messen hast, Blender duerfte da wohl ganz oben stehen.

Ach ja, und falls Du GPL-Code in Dein Projekt hast einfliessen lassen dann wird Dir eh nichts anderes uebrig bleiben als dass Projekt selbst unter der GPL zu veroeffentlichen, also inklusive Quellcode.

An Deiner Stelle wuerde ich hier in jedem Fall die Tugenden und Vorteile freier Software vorziehen und den Quellcode freigeben anstatt auf dieser Schiene von wegen geistigem Eigentum zu fahren.
 
Hallo,

da muss ich Dennis voll und ganz zustimmen!
Vor allem da du QT nutzt und Trolltech das unter GPL veröffentlich hat, musst du deinen SourceCode freigeben.

MFG

Sascha
 
Hallo,

im Großen und Ganzen muss ich da ebenfalls Dennis zustimmen: Mit Open Source wirst du unter Linux definitiv mehr Akzeptanz finden. Selbst Linux-User, die nicht jeden einzelnen Code einsehen wollen oder können, würden vermutlich alleine der Ideologie wegen eher zu Open Source greifen. Wenn du im Restaurant etwas isst, würdest du doch sicher auch gern wissen, was dir da auf den Teller kommt, oder? Selbst wenn du der Küche damit keine Konkurrenz machen willst. Wenn der Koch seine Zutatenliste nun aber geheim halten möchte und das Schnitzel mit Pommes (?) einmal durch den Mixer jagt und so einen leckeren Binärteller daraus macht... naja, guten Appetit. :)

Natürlich muss das jeder für sich selbst entscheiden. Wenn du nicht gerade Bibliotheken benutzt, die unter der GPL veröffentlicht sind, steht dir das natürlich weitgehend frei. Ansonsten solltest du dich mal genauer mit den ganzen Lizenzen beschäftigen, denn da steht meist drin, ob der Source Code zur Verfügung gestellt werden muss oder nicht.

Zu guter letzt schließt Open Source ja auch nicht aus, dass man mit der Software Geld verdienen kann. Wie Stallman so schön sagte: "free as in free speech, not as in free beer."

Wenn alle rechtlichen Bedenken aus dem Weg geräumt sein sollten und du weiterhin nur die Binärdateien veröffentlichen willst, wäre eine weitere Möglichkeit, die Units erstmal nur in Objektdateien zu kompilieren. Du kannst diese Dateien und die notwendigen Bibliotheken zusammen in einem Tarball anbieten, wo du dann ein Makefile (benutzt du ja ohnehin schon) mit hinzufügst, das die Dateien erst beim User durch den Linker zieht und dann mittels "make install" installiert.

Grüße, D.

P.S.:
Vor allem da du QT nutzt und Trolltech das unter GPL veröffentlich hat
Ist Qt inzwischen echt GPL-Software? Muss ich irgendwie verpennt haben... :rolleyes:
 
Ok, hätte vielleicht erstmal fragen sollen, welche Version genutzt wird.

Trolltech bietet eine commerzielle Version an, die Geld kostet und eine Open Source Version die unter GPL steht. :)

MFG

Sascha
 
Oh ich habe gerade erst erfahren, dass wenn man gegen eine GPL Lib linkt, muss sein sourcecode freigeben. Das ist So eine Entäuschung :mad::mad::mad

Ich habe so viel zeit in dieses Programm investiert und dabei einpaar Inovationen eigeführt. Wenn ich mein geheimnis preisgebe, ist meine Software nichts besonders. Wenn ich es eimal verkaufe steht er nächste Tag beim Blender und dann kann ich alles vergessen. Ich bin auch ein Einzelperson und kann nicht mal gegen die Verbeitung und Veränderung kein Schritt mithalten.

Meine Meinung nach GPL ist gemacht nur Leute, die gerne Software kopieren "clonen" oder andauert verbessern, optimieren. 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.

Ich wusste bis jetzt ,dass Opensource Bibliothek bedeutet nur, dass sie kostenloss sind und du sie beliebig für jede Zweck benutzen kann. Aber jetzt, jetzt verstehe ich auch die Vorwürfe, die meist Windows usern auf Linux vorwerfen.
Ich könnte mich vorstellen mein Programm kostenloss zu verbreiten aber meine Quellkode wurde ich ihn nie Zeigen, nie.

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.
Aber eine Lizenz ist eben eine lizenz.

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.

So eine Assimilierung meiner gedanken habe ich noch nie erlebt.:)

Ps: ps
 
Zuletzt bearbeitet:
Zurück