Michael Schröpl: Perl-Code schützen

Beitrag lesen

es geht eigentlich um eine Art Kopierschutz.
Das Script ist sehr universell und eignet sich
für viele verschiedene Sites, da man nur ein paar
Templates ändern muss.

Das spricht für Dein Skript - und eigentlich willst
Du doch auch, daß viele Leute es verwenden, solange
Dein wirtschaftlicher Erfolg dadurch nicht geschmälert
wird, oder?

Ich habe auch Kunden, die dieses Script einsetzen
möchten, aber auch selbst im Webpublishing tätig
sind. Da habe ich dann schon Angst, daß sie meine
Software unter eigenem Namen weitervertreiben.

Wie Stefan schon schrieb, ist das eher ein juristisches
als ein technisches Problem.

Ich dachte, daß ich den Sourcecode schütze

Bei Open Source? Und zwar wie?

Alles, was Du erfindest, um den Zugang zu erschweren,
kann jemand anderes re-engineeren.
Du kannst es ihm natürlich ein bißchen erschweren,
beispielsweise ein Programm drüberlaufen lassen, das
alle Kommentare entfernt, Einrückungen und Zeilen-
umbrüche eliminiert, sprechende Namen für Identifier
durch numerierte Namen ersetzt usw. - einen Obfuscator
eben. (Schlechter Programmierstil "hilft" ebenfalls. ;-)

Aber Du kommst letztlich nicht wirklich weiter als bei
der Diskussion, ob man HTML-Source verstecken kann.
Es dürfte die Arbeit also nicht wert sein.

und die Scriptaufrufe auf meinem eigenen Server
logge (natürlich werden die Kunden über dieses
Vorgehen informiert). Dann hätte ich eine Kontrolle,
wo mein Script läuft.

Wer an Deinem Skript herumschrauben kann, der findet
auch Deine Logging-Funktion (suche nach "http" ... ?)
und baut sie aus.
(Schon deshalb, weil sie ihn Performance kostet ... ;-)

Oder gibt es andere Möglichkeiten solche Arbeiten
effektvoll zu schützen?

Ich würde damit beginnen, den Softwarevertrag entsprechend
abzufassen.

Als nächstes würde ich überlegen, ob Perl die richtige
Sprache für Dein Projekt ist. Verwendest Du massiv
reguläre Ausdrücke bzw. Hashes? Falls nicht, ist eine
Übertragung z. B. nach C oder C++ wahrscheinlich nicht
schwer, und dann könntest Du (plattformspezifische)
Binaries ausliefern. Es ist Deine Entscheidung, ob Du
einen Quelltext oder eine Black Box verkaufen willst.
Ich als Kunde würde ggf. für die Source-Lösung mehr
zahlen - nicht, weil ich sie mißbrauchen will, sondern
weil sie transparenter und damit besser bedienbar oder
gar anpaßbar ist, falls sich meine Anforderungen ändern.
Es könnte ja sein, daß ich als Kunde aufgrund der Kennt-
nis des Quelltextes eine Idee für eine Änderung habe

  • und diese dann bei Dir in Auftrag geben will?

Daniel hat ja bereits auf einen Cross-Compiler nach
C verwiesen - vielleicht reicht der ja, um dessen Aus-
gabe als neuen Quelltext für die Weiterentwicklung zu
nehmen und manuell zu ergänzen?

Was Du haben willst, das wäre ein Perl-Compiler, der
plattformspezifische binaries generiert.
Die Lösung über "perl2exe" halte ich allerdings für
nicht wirklich elegant, sie kostet Platz und wahrschein-
lich auch Performance. Aber falls es nichts Besseres
gibt ...