Jörg Peschke: JavaScript Obfuscater

Hallo,
Ich wollte mal so rumfragen, wer von Euch Erfahrungen mit JavaScript-Obfuscatern hat (also Programmen, die JavaScript-Code unleserlich machen). Kann jemand hier gute Software empfehlen?

Hinweis: Nur um einer Grundlagen-Diskussion vorzubeugen: Dem Reizthema "Sinn von JavaScript-Schutzmechanismen" (seien es Dinge wie das Sperren des Kontextmenus oder eben das "Scramblen" von Code mittels Software) bin ich mir wohl bewusst (bin selber eigentlich ein OpenSource-Verfechter *g*). Auch weiss ich, dass 100%tiger-Schutz natürlich nicht möglich ist.
Es geht nur darum, dass bei uns zum Teil sehr umfangreiche JavaScript-Bibliotheken mit einigem an Entwicklungsaufwand zum Einsatz kommen, und wir (bzw. unsere Kunden) es den 0-8-15-Scriptern ein bisschen...sagen wir unagenehmer machen wollen, Code zu klauen.
Wer hingegen fit genug in JavaScript ist, einen gescrambleden Code zu analysieren, wird es vermutlich ohnehin nicht nötig haben, fremden Code einzusetzen, sondern sich sein Zeug lieber selbst programmieren und sich woanders bestenfalls Anregungen holen  - dem sei dann auch ein Einblick in unseren Code von Herzen gegönnt :)

  1. Hallo, Jörg,

    Ich wollte mal so rumfragen, wer von Euch Erfahrungen mit JavaScript-Obfuscatern hat (also Programmen, die JavaScript-Code unleserlich machen). Kann jemand hier gute Software empfehlen?

    vergebene Liebesmüh, würd' ich sagen - ich habe selber schon mehrfach gescrambelten JS- und auch PHP-Code wieder lesbar gemacht, ohne der ganz große Programmier-Crack zu sein. Das war ganz lehrreich - der verschlüsselte Code ist die Mühe aber meist nicht Wert ...

    Eine kleine Abhandlung zum Thema gibt es bei Dr. Web ...

    Codieren und Verschlüsseln mit JavaScript

    Grüße,

    Sebastian

  2. Hi,

    Ich wollte mal so rumfragen, wer von Euch Erfahrungen mit JavaScript-Obfuscatern hat (also Programmen, die JavaScript-Code unleserlich machen). Kann jemand hier gute Software empfehlen?

    Wenn Du dafür Software von Drittanbietern benötigst ist Dein Javascript den "Schutz" nicht wert.

    (bin selber eigentlich ein OpenSource-Verfechter *g*).

    Das ist arg zu bezweifeln. Einiges, was an Opensource so rumfliegt benötigte _erheblichen_ Aufwand seitens der Ersteller und trotzdem kam keiner auf die Idee, den Code zu verstecken.
    Wenn Du den Code vor unrechtmäßiger Nutzung schützen möchtest dann definiere "unrechtmäßige Nutzung" und wähle die entsprechende Lizenz. Wenn es Dir unangenehm ist, das man das Programm trotzdem einfach kopieren kann, dann nutze kein clientseitig auszuführendes Programm.

    Noch ein prinzipielles Problem, das meistens übersehen wird: es reicht, wenn _einer_ das Dingen geknackt hat und den Crack veröffentlicht, dann kann jeder, auch der Dümmste darüber verfügen. (Obwohl hier im Forum schon so einige Male etwas aufschlug, das noch nicht einmal dazu in der Lage war ;-)

    Du bist wahrscheinlich noch nicht so lange dabei, das Du Dich der Zeiten erinnern kannst, da es eine große Unixfamilie gab und alle Programme der Einfachheit halber als Code ausgeliefert wurden und zwar als gescrambelter Code. Nur gab es damals für jeden Obfuskator auch einen Deobfuskator, denn der Möglichkeit schnell und einfach Änderungen im für teuer Geld erworbenem Programm ausführen zu können konnte sich, schon aus rein ökonomischen Gründen, keiner entziehen.

    Noch was: wenn ich als Kunde jemandes Seite besuche und sehe zufällig (weil irgendetwas nicht geklappt hat o.ä.) das der Javascriptcode gescrambelt wurde frage ich mich was der Kerl denn noch so alles zu verbergen hat und bin nicht nur als Kunde verloren sondern erzähle es auch weiter. Du kennst das ja: man muß den Kunden schon _sehr_ gut bedient haben, das der einen weiterempfiehlt, jedoch reicht schon die kleinste negative Kleinigkeit aus, einen weiten Kreis zu ziehen.

    so short

    Christoph Zurnieden

    1. Moin,
      Danke erstmal für Deine Antwort,

      Wenn Du dafür Software von Drittanbietern benötigst ist Dein Javascript den "Schutz" nicht wert.

      Wenn du damit meinst, dass ein umfangreiches, komplexes JavaScript ohnehin nicht ohne weiteres zu rippen ist, weil es auf den jeweiligen Zweck bzw. die entsprechende Seite, auf der es läuft, zugeschnitten ist, stimme ich Dir zum Teil zu, aber eben nur zum Teil.
      Wenn man nicht für jede Anwendung komplett alles neu machen will, versucht man eben, die Sache möglichst generisch zu halten (wie man das halt so schön lernt), und somit sind in der Tat manche (ich sage nicht alle) Scripte durchaus für die breite Masse prima wiederverwendbar. Und ich kann es schon verstehen,  wenn ein Kunde für die Entwicklung eines Features auf einer Webseite zahlt, dass er dann nicht will, dass es eine woche später in der gleichen Form bei der Konkurrenz auftaucht.

      Das ist arg zu bezweifeln. Einiges, was an Opensource so rumfliegt benötigte _erheblichen_ Aufwand seitens der Ersteller und trotzdem kam keiner auf die Idee, den Code zu verstecken.

      Es gibt aber wenige Firmen, die wirklich mit der Entwicklung von OSS Geld verdienen und das nicht ohne Grund. Will man als Firma wirklich die Entwicklungsleistung  verkaufen (ich meine jetzt nicht Distribution o.ä., wo der Verkauf einer Dienstleistung oder Bereitstellung der Software im Vordergrund steht), ist es unter Umständen problematisch, wenn der Code ohne weiteres eingesehen und ggf. kopiert werden kann.
      Bei Web-Seiten hast Du zusätzlich noch das Problem, dass durch die hohe Änderungsdynamik des Web Code relativ schnell ausgetauscht, aktualisiert, kopiert usw. werden kann, sodaß ein Nachweis von "Code-Klau" schwer bis umöglich ist.

      Wenn Du den Code vor unrechtmäßiger Nutzung schützen möchtest dann definiere "unrechtmäßige Nutzung" und wähle die entsprechende Lizenz.

      Das ist auch leichter gesagt als getan. Natürlich, rechtlich hast du völlig recht: JavaScript-Code ist afaik ohnehin schon, wie auch jede HTML-Seite geistiges Eigentum des Erstellers und als solches bereits rechtlich geschützt, das Rippen eines solchen JavaScript-Codes ohne Zustimmung des Autors ist somit nicht rechtmäßig, fertig.
      Und wer schert sich in der Praxis darum? Niemand.

      Wenn es Dir unangenehm ist, das man das Programm trotzdem einfach kopieren kann, dann nutze kein clientseitig auszuführendes Programm.

      Es gibt nunmal leider Dinge, die Clientseitig ausgeführt werden MÜSSEN. Natürlich hat man die möglichkeit, nicht-interpreter-basierte Client-side-Techniken (wie Flash oder Java) zu nutzen, aber auch die haben nicht immer Vorteile sondern sind für manche Zwecke eben ungeeignet.

      Noch ein prinzipielles Problem, das meistens übersehen wird: es reicht, wenn _einer_ das Dingen geknackt hat und den Crack veröffentlicht, dann kann jeder, auch der Dümmste darüber verfügen. (Obwohl hier im Forum schon so einige Male etwas aufschlug, das noch nicht einmal dazu in der Lage war ;-)

      Richtig. Mit sowas muss man dann halt leben. Es geht auch nur darum, die erste Hürde des "Copy-and-pastens" zu nehmen. Wer darüber hinaus wirklich neugierig wird, und den Code haben will kommt auch dran - das ist dann auch ok.

      Noch was: wenn ich als Kunde jemandes Seite besuche und sehe zufällig (weil irgendetwas nicht geklappt hat o.ä.) das der Javascriptcode gescrambelt wurde frage ich mich was der Kerl denn noch so alles zu verbergen hat und bin nicht nur als Kunde verloren sondern erzähle es auch weiter.

      Wieso dieses? Nimmst Du es jemandem übel, dass er einen Internet-Dienst als JavaApplett umsetzt? Dort kannst Du auch nicht in den Quell-Code gucken.

      Gruesse,
      Joerg

      1. Hi,

        Danke erstmal für Deine Antwort,

        "erstmal"? Warum diese Einschränkung? ;-)

        Und ich kann es schon verstehen,  wenn ein Kunde für die Entwicklung eines Features auf einer Webseite zahlt, dass er dann nicht will, dass es eine woche später in der gleichen Form bei der Konkurrenz auftaucht.

        Und warum hast Du das dann erst getan?

        Das ist arg zu bezweifeln. Einiges, was an Opensource so rumfliegt benötigte _erheblichen_ Aufwand seitens der Ersteller und trotzdem kam keiner auf die Idee, den Code zu verstecken.
        Es gibt aber wenige Firmen, die wirklich mit der Entwicklung von OSS Geld verdienen und das nicht ohne Grund.

        Das wäre ja auch das falsche Geschäftsmodell. Unter bestimmten Umständen klappt das zwar auch, ist aber wirklich selten.

        Will man als Firma wirklich die Entwicklungsleistung  verkaufen (ich meine jetzt nicht Distribution o.ä., wo der Verkauf einer Dienstleistung oder Bereitstellung der Software im Vordergrund steht), ist es unter Umständen problematisch, wenn der Code ohne weiteres eingesehen und ggf. kopiert werden kann.

        Unter welchen Umständen? Doch nur, wenn Du das gleiche Programm mehrmals verkaufen willst. Dieses Geschäftsmodell stirbt jedoch so langsam aus. Nur noch Firmen mit ausreichend großer Masse können noch Profite im Closed-Source Markt erwirtschaften, kleine und mittelständische Betriebe jedoch nicht mehr. Die Zeit der kleinen Shareware, wo man von den knapp 5% Rücklauf gut leben konnte sind lang' vorbei.

        Bei Web-Seiten hast Du zusätzlich noch das Problem, dass durch die hohe Änderungsdynamik des Web Code relativ schnell ausgetauscht, aktualisiert, kopiert usw. werden kann, sodaß ein Nachweis von "Code-Klau" schwer bis umöglich ist.

        Wenn ich Dich richtig verstanden habe, dann ist das ein Kundenauftrag. Hat der schon bezahlt? Wenn ja: warum kümmert es Dich dann noch? Weil Du das gleiche Programm -- mühsam generisch gehalten -- noch öfter verkaufen möchtest? Das ist Dein gutes Recht, das zu versuchen, aber das ist hier nur sehr schlecht möglich. Die einzige Möglichkeit hast Du vertan: den Code sehr speziell auf den Kunden auszurichten und dann bei anderen für die Anpassung zu kassieren.
        Das wäre dann aber nicht nur moralisch-ethisch sondern auch technisch verwerflich.
        Dehalb jetzt einen Obfuskator?

        Wenn Du den Code vor unrechtmäßiger Nutzung schützen möchtest dann definiere "unrechtmäßige Nutzung" und wähle die entsprechende Lizenz.
        Das ist auch leichter gesagt als getan.

        Ein Fachanwalt für Vertragsrecht ist da sicherlich gerne behilflich. Es existieren aber auch schon viele Vordrucke im Netz.

        Natürlich, rechtlich hast du völlig recht: JavaScript-Code ist afaik ohnehin schon, wie auch jede HTML-Seite geistiges Eigentum

        Sowas wie "geistiges Eigentum" gibt es nicht, hat es nie gegeben, ist ein Erfindung der Mediaindustrie. Jeder Urheber eines Werkes bekommt ein zeitlich begrenztes Verfügungs-Monopol _zugesprochen_ und in D auch nur, wenn eine gewisse Schöpfunghöhe gegeben ist (eine schlichte HTML Seite gehört laut aktueller Rechtssprechung übrigens nicht dazu. Komplexeres JS dagegen schon, bevor Du Dich aufregst), mehr nicht.

        des Erstellers und als solches bereits rechtlich geschützt, das Rippen eines solchen JavaScript-Codes ohne Zustimmung des Autors ist somit nicht rechtmäßig, fertig.

        Aber selbstverständlich kann das Dingen jeder rippen und benutzen, nur die Weiterverbreitung unterliegt gewissen Regeln. Da die Benutzung auf einer öffentlich zugänglichen Webseite den Tatbestand der Weiterverbreitung erfüllt wäre eine Genehmigung erforderlich.

        Und wer schert sich in der Praxis darum? Niemand.

        Die unmittelbare Konkurenz ist normalerweise klein und bekannt und kann damit auch stichprobenartig kontrolliert werden.

        Wenn es Dir unangenehm ist, das man das Programm trotzdem einfach kopieren kann, dann nutze kein clientseitig auszuführendes Programm.
        Es gibt nunmal leider Dinge, die Clientseitig ausgeführt werden MÜSSEN.

        Ja, die Auswahl/Eingabe der zu bearbeitenden Daten und das "Wie". Mehr aber auch nicht!

        Natürlich hat man die möglichkeit, nicht-interpreter-basierte Client-side-Techniken (wie Flash oder Java) zu nutzen, aber auch die haben nicht immer Vorteile sondern sind für manche Zwecke eben ungeeignet.

        Nein, ich habe mich aus gutem Grund nicht auf interpreterbasierte Sprachen beschränkt, ich meinte _alle_ auf dem Client auszuführenden Programme.

        Noch was: wenn ich als Kunde jemandes Seite besuche und sehe zufällig (weil irgendetwas nicht geklappt hat o.ä.) das der Javascriptcode gescrambelt wurde frage ich mich was der Kerl denn noch so alles zu verbergen hat und bin nicht nur als Kunde verloren sondern erzähle es auch weiter.
        Wieso dieses? Nimmst Du es jemandem übel, dass er einen Internet-Dienst als JavaApplett umsetzt?

        Kommt drauf an, generell wahrscheinlich erstmal nicht bzw wenn, dann eher aus anderen Gründen.

        Dort kannst Du auch nicht in den Quell-Code gucken.

        Ich kann alle Programme analysieren, die bei mir laufen.
        Java kann übrigens und sollte auch als Quelloffen angesehen werden, da es zu einfach ist an gut lesbaren Code zu kommen. Oder warum meinst Du gibt es Obfuskatoren für Java? ;-)

        so short

        Christoph Zurnieden

        1. Hallo,

          Unter welchen Umständen? Doch nur, wenn Du das gleiche Programm mehrmals verkaufen willst. Dieses Geschäftsmodell stirbt jedoch so langsam aus. Nur noch Firmen mit ausreichend großer Masse können noch Profite im Closed-Source Markt erwirtschaften, kleine und mittelständische Betriebe jedoch nicht mehr.

          Da muss ich Dir widersprechen. Natürlich ist es so, dass ein Kunde i.d.Regel das Recht haben sollte, den Source-Code einer erworbenen Lösung einsehen zu können. Nur so ist sinnvolle SW-Integration möglich, im Bereich des Web sowieso. Ich möchte ja auch JavaScripts nicht vor potenitellen Kunden verstecken sondern vor deren Konkurrenz, und auch nicht alle JavaScripts, sondern nur welche, die mir schützenswert erscheinen.

          Darüber hinaus gibt es noch zahlreiche Bereiche, wo mitnichten Sourcecode herausgegeben wird,  bestenfalls APIs, weil etwas anderes einfach den Vorsprung, den eine Firma durch Know-How und clevere Implementierung hat, zu nichte machen würde. Als Beispiel nenne ich nur sowas wie Audio/Videocodierung oder ähnliches (und komm mir jetzt nicht mit Ogg und Xvid).
          Linus Throwalds selbst, den man ja nun wirklich als OpenSource-Verfechter bezeichnen kann, ist (oder war zumindest bis vor ein paar Jahren) als Entwickler für eine Firma tätig, die  Closed-Source-Software verkauft hat, weil das - so sagt er in seinem Buch - für deren Produkt einfach keinen Sinn macht, den Code offen zu legen. Letztendlich muss jeder selbst entscheiden, ob er ein Produkt als Open- oder Closed-Source veröffentlichen will.

          Wenn ich Dich richtig verstanden habe, dann ist das ein Kundenauftrag. Hat der schon bezahlt? Wenn ja: warum kümmert es Dich dann noch? Weil Du das gleiche Programm -- mühsam generisch gehalten -- noch öfter verkaufen möchtest? Das ist Dein gutes Recht, das zu versuchen, aber das ist hier nur sehr schlecht möglich. Die einzige Möglichkeit hast Du vertan: den Code sehr speziell auf den Kunden auszurichten und dann bei anderen für die Anpassung zu kassieren.

          Nope, so einfach ist das nicht. Erstens: Ich rede nicht von einem speziellen Kundenauftrag sondern von der generellen Entwicklung unter JavaScript, die dieses Problem aufwirft.
          Zweitens: Das gleiche Produkt an zwei (mgl.weise konkurierende) Kunden zu verkaufen, hat damit nichts zu zun, ganz abgesehen davon, dass Verträge so etwas oft gar nicht zulassen.
          Es geht darum, dass, wenn Zeit und somit Geld in der Entwicklung einer Implementierung steckt, man nicht will, dass Konkurrenten das Zeug einfach kopieren, weil sie der Meinung sind, dass das für ihre Anforderungen auch prima passen würde. Wer sich hingegen dadurch nicht aufhalten lässt, ist ohnehin fit genug, das Ding durch reines Reverse Engineering selber nachzuprogrammieren.

          Es gibt nunmal leider Dinge, die Clientseitig ausgeführt werden MÜSSEN.

          Ja, die Auswahl/Eingabe der zu bearbeitenden Daten und das "Wie".

          Bingo :)

          Ich kann alle Programme analysieren, die bei mir laufen.

          Das kannst Du ja mit einem obfuscated JavaScript auch tun.
          Angenommen du willst wirklich verstehen, wie irgendetwas auf einer Seite gemacht ist, es hindert Dich niemand daran, das Ding gründlich auseinander zu nehmen und zu gucken, was es tut.
          Einzig das simple "Och, das gefällt uns, das bauen wir auch ein *klick**drag**save*" wird ein bisschen komplizierter, daran finde ich erstmal nichts verwerfliches. Über die konkrete Situation muss man dann natürlich von Fall-zu-Fall entscheiden

          Ciao,
          Jörg

          1. Hi,

            Darüber hinaus gibt es noch zahlreiche Bereiche, wo mitnichten Sourcecode herausgegeben wird,  bestenfalls APIs, weil etwas anderes einfach den Vorsprung, den eine Firma durch Know-How und clevere Implementierung hat, zu nichte machen würde.

            Das ist meistens nur vorgeschoben. In Wahrheit steckt da oft ein Problem mit Patenten hinter, sprich: da wurde an allen Ecken geklaut (ob bewußt oder unbewußt ist bei Softwarepatenten völlig egal, ich befürchte selbst mit einem "Hello World" dürftest Du gegen irgendein Patent verstoßen) und wenn das rauskommt wird's teuer.

            Das das mit dem Vorsprung einmal funktioniert hat und auch wirklich grundehrlich so gemeint war bestreite ich nicht. Mittlerweile steckt so eine kleine Firma aber in der Klemme: es besteht die Möglichkeit, das jemand hingeht und die Funktion selber implementiert und quelloffen und mit einer freien Lizenz veröffentlicht. Du mußt also immer mehr für's Geld bieten als die Opensourcevariante. Was aber nun, wenn die einfach "gut genug" ist? Dann helfen auch keine goldenen Wasserhähne mehr.

            Als Beispiel nenne ich nur sowas wie Audio/Videocodierung oder ähnliches (und komm mir jetzt nicht mit Ogg und Xvid).

            Tue ich trotzdem und zwar: beide freien Varianten sind technisch besser als die patentierten.

            BTW: das WMV Format (Microsoft) wird augenblicklich von Sony und anderen wg. Patentverletzungen angegriffen. Bin neugierig weswegen. (Vermutungen gehen in Richtung HD-DVD)

            Linus Throwalds

            Der Mensch heist Linus Torvalds, bitte. Die Zeiten, da man sich so billige Späßchen mit anderer Leut's Namen geleistet hat sind doch wohl schon lange vorbei, oder? ;-)

            selbst, den man ja nun wirklich als OpenSource-Verfechter bezeichnen kann, ist (oder war zumindest bis vor ein paar Jahren) als Entwickler für eine Firma tätig, die  Closed-Source-Software verkauft hat, weil das - so sagt er in seinem Buch - für deren Produkt einfach keinen Sinn macht, den Code offen zu legen.

            Alter Spruch: "Wess' Brot ich eß dess' Lied ich sing." ;-)

            Letztendlich muss jeder selbst entscheiden, ob er ein Produkt als Open- oder Closed-Source veröffentlichen will.

            Ja, aber ist die Katze einmal aus dem Sack, bekommst Du sie ohne schwere Verletzungen nicht wieder rein.

            Nope, so einfach ist das nicht.

            Oh, das ist mitunter _sehr_ einfach! ;->

            Erstens: Ich rede nicht von einem speziellen Kundenauftrag sondern von der generellen Entwicklung unter JavaScript, die dieses Problem aufwirft.

            Ja, aber das sollte wirklich schon vorher klar gewesen sein. Da am Ende noch irgendetwas flicken zu wollen halte ich doch schon für ein klein wenig peinlich.

            Es geht darum, dass, wenn Zeit und somit Geld in der Entwicklung einer Implementierung steckt, man nicht will, dass Konkurrenten das Zeug einfach kopieren, weil sie der Meinung sind, dass das für ihre Anforderungen auch prima passen würde.

            Manche sind genau dieser Meinung und begrüßen dieses Vorgehen sogar. Sei also bitte nicht so allgemein mit:"man will", danke.

            Wer sich hingegen dadurch nicht aufhalten lässt, ist ohnehin fit genug, das Ding durch reines Reverse Engineering selber nachzuprogrammieren.

            Wenn er die Javascriptobfuscation zurückgedreht hat, steht da Javascript: C&P. Da sich diese Javascript eindeutig von Deinem obfuskiertem unterscheidet, ist das noch nicht einmal verboten, denn kein Richter wird Deiner Beweiskette folgen können und wo kein Richter ...
            Dadurch, das Du Deinen Code scrambelst minderst Du also Deine Möglichkeiten unerlaubtes Kopieren untersagen zu können. Möchtest Du das?

            Es gibt nunmal leider Dinge, die Clientseitig ausgeführt werden MÜSSEN.

            Ja, die Auswahl/Eingabe der zu bearbeitenden Daten und das "Wie".
            Bingo :)

            Ich befürchte nicht, denn wofür bitteschön benötigt so ein simples HTML-Formular ausgefuchstes Javascript?

            Ich kann alle Programme analysieren, die bei mir laufen.
            Das kannst Du ja mit einem obfuscated JavaScript auch tun.
            Angenommen du willst wirklich verstehen, wie irgendetwas auf einer Seite gemacht ist, es hindert Dich niemand daran, das Ding gründlich auseinander zu nehmen und zu gucken, was es tut.

            Würde ich bei sowas nie tun, kommt eh nie was lehrreiches bei raus. Insofern würde ein Obfuscating bei mir tatsächlich etwas nützen. ;-)
            Nur wäre ich als Kunde selbstverständlich verloren.

            Einzig das simple "Och, das gefällt uns, das bauen wir auch ein *klick**drag**save*" wird ein bisschen komplizierter, daran finde ich erstmal nichts verwerfliches.

            Javascript, das sich einfach durch C&P weiterverwenden läßt habe ich noch nicht erlebt. Irgendwie einbauen mußte man das immer. Und daran scheitern die ganz einfachen Existenzen (siehe z.B. hier im Archiv ;-) und denen, die das können ist Dein Obfuskator egal. Die Zielmenge an Leuten, die Du erreichen möchtest geht demnach schwer gegen Null. Würde mir also noch schwerer überlegen, ob mir das die Mühe wert wäre.

            Über die konkrete Situation muss man dann natürlich von Fall-zu-Fall entscheiden

            Da dürfte es keine Fallunterscheidung geben, vid. Church et al., d.h. es geht prinzipiell erstmal immer. Was man damit anfangen kann (je nachdem geht ja einiges an für den Maschinencode unnötiger Information verloren) steht natürlich auf einem anderem Blatt.

            so short

            Christoph Zurnieden

            1. Hallo, nochmal,
              Ich glaube, die Sache ist jetzt müßig. Ich wollte Tips über gute JavaScript-Obfuscater-Software, und eben keine Grundsatz-Diskussion über Open Source anzetteln, aber just diese entwickelt sich jetzt daraus, das wird mir jetzt zu stressig, weiter rum zu argumentieren, das kann ich im Heise-Forum auch.

              Ich habe versucht Dir nahezulegen, dass ich prinzipiell für den Grundgedanken der Open Source bin - ich bin begeisterter Debian-Linux-User (auch wenn ich Linus Torvalds falsch geschrieben habe, das passiert mal in der Hektik :)), und nutze viel OpenSource-SW, es sei denn, die Closed-Variante überzeugt mich mehr (ja, auch das gibt es!).
              Aber Dir scheint es offenbar zu gefallen, mich partout in die "Microsoft-und-Software-Patente-Befürworter"-Schublade stecken zu wollen, nur weil ich im Sinne unserer Kunden will, dass meine Arbeit und die Arbeit der Firma, in der ich arbeite primär nur von denen genutzt wird, die sie gezahlt und beauftragt haben - den Schuh zieh ich mir einfach nicht an, sorry.

              Viele Gruesse,
              Jörg Peschke

              1. gruss Jörg,

                schau Dir mal ESC von  Saltstorm an.

                so long - peterS. - pseliger@gmx.net

                --
                "Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
                Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive." - Douglas Crockford
                1. Moin,
                  Danke für den Tip, beguck ich mir mal.

                  Viele Gruesse,
                  Joerg

              2. Hi,

                Ich glaube, die Sache ist jetzt müßig.

                Das habe ich mir schon von Anfang an gedacht, jedoch lasse ich die Hoffnung nie so einfach fahren.

                Ich hatte versucht Dir klarzumachen, das Dein Ansinnen unter bestimmten Umständen nicht nur nicht funktioniert, sondern sogar kontraproduktiv ist. Zufällig sind diese Umstände sogar genau das, wofür Du das Teil benötigst.
                Ich habe also versucht, Dich ausreichend mit Argumenten zu versorgen, damit Du dieses Ansinnen dem Kunden austreiben kannst.

                Ich wollte Tips über gute JavaScript-Obfuscater-Software, und eben keine Grundsatz-Diskussion über Open Source anzetteln, aber just diese entwickelt sich jetzt daraus, das wird mir jetzt zu stressig, weiter rum zu argumentieren, das kann ich im Heise-Forum auch.

                Das wage ich aber ernsthaft zu bezweifeln ;-)

                Außerdem ist das keine Grundsatzdiskussion über OpenSource; oder vielleicht doch: Javascript ist ja schon grundsätzlich quelloffen.

                Ich habe versucht Dir nahezulegen, dass ich prinzipiell für den Grundgedanken der Open Source bin

                Dann ist es nicht klar genug rausgekommen, das mir das völlig egal ist, da es nichts mit dem Thema zu tun hat. Außer das Du wahrscheinlich einer der vielen Nutzer bist, die nur nehmen und nichts geben.

                Aber Dir scheint es offenbar zu gefallen, mich partout in die "Microsoft-und-Software-Patente-Befürworter"-Schublade stecken zu wollen, nur weil ich im Sinne unserer Kunden will,

                Das ist aber gar nicht im Sinne Deiner Kunden!
                Da ich ja wohl kaum davon ausgehen kann, das Du zu dumm bist, kann ich nur davon ausgehen, das ich unfähig bin mich klar genug auszudrücken. ich habe mich zwar nach bestem Wissen bemüht, aber wenn das nicht reicht, dann bitte ich um Entschuldigung.

                dass meine Arbeit und die Arbeit der Firma, in der ich arbeite primär nur von denen genutzt wird, die sie gezahlt und beauftragt haben - den Schuh zieh ich mir einfach nicht an, sorry.

                Den trägst Du aber bereits.
                Du hast die Logik auf den Client übertragen und dabei auch noch eine einfache Scriptsprache benutzt obwohl Du nicht möchtest, das es jeder lesen kann. Das sind zwei dicke Fehler, die Du Dir selber ankreiden lassen mußt sofern Du keinen anderen Schuldigen findest.

                Es gibt natürlich auch noch eine letzte Möglichkeit: Du hast selber soviel Code geklaut, das Du jetzt Angst hast erwischt zu werden. Ein kleiner Umstand, den ich mit ausreichend schlechtem Willen durchaus als Indiz werten könnte bringt mich darauf: so ein Javascript-Obfuskator ist einfach und schnell hergestellt, das dauert keine Stunde; Du behauptest komplexen Javascript schützen zu wollen, damit verknüpft sich auch die Behauptung, das Du Javascript sehr gut kannst; Du postest hier und diskutierst auch noch stundenlang -- länger als nötig wäre, sich so einen Obfuskator selber zu bauen -- und beschwerst Dich am Ende auch noch darüber, das Dir nicht so einfach zu Willen bin; eine Google Suche nach Javascript obfuscator erschlägt Dich fast schon mit Hits.
                Was _könnte_ ich also davon halten? Das Du den Kram zusammengeklaubt hast, mit gerade einmal soviel Javascriptverständnis, das Du das auch zusammenkleben kannst, dem Kunden für teuer Geld verkauft hast und nun befürchtest, dsa alles rauskommt? Das Du Javascript gewählt hast, weil das die einzige Sprache ist, wovon Du auch nur den Hauch einer Ahnung hast?
                Ja, das alles _könnte_ ich daraus schließen, tue ich aber nicht. Nein, ich nehme einfach an, das Du schlicht im Irrtum begriffen bist und versuche Dich darüber aufzuklären.

                Ich habe mal versuct über Googe etwas mehr über Dich herauszubekommen, aber Dein Name kommt wohl zu oft vor. Oder gehörst Du etwa zu etone.de? Dann wundert es mich nicht mehr.

                so short

                Christoph Zurnieden

                1. Was habe ich Dir eigentlich getan, dass du jetzt anfängst, über mich herzuziehen?

                  Dann ist es nicht klar genug rausgekommen, das mir das völlig egal ist, da es nichts mit dem Thema zu tun hat. Außer das Du wahrscheinlich einer der vielen Nutzer bist, die nur nehmen und nichts geben.

                  Du kennst mich gar nicht, und ziehst daraus Schlüsse über mich, nur weil ich beim Thema JavaScript Obfuscation nicht Deiner Meinung bin.

                  Den trägst Du aber bereits.
                  Du hast die Logik auf den Client übertragen und dabei auch noch eine einfache Scriptsprache benutzt obwohl Du nicht möchtest, das es jeder lesen kann. Das sind zwei dicke Fehler, die Du Dir selber ankreiden lassen mußt sofern Du keinen anderen Schuldigen findest.

                  Du weisst weder, um welche Projekte es konkret ging und geht, noch kennst du die  technische Vorraussetzungen, Anforderungen, die Server-Umgebung usw. - etwas kühn, da technische Entscheidungen in Fragen zu stellen, meinst Du nicht?
                  Darüber hinaus: Es geht mir weder um vergangene Projekte, noch um ein aktuell konkretes. Ich sagte, ich möchte mir Obfuscator-Software anschauen, erwäge deren Einsatz (auf Grund von manchen Anfragen und aus gennanten Gründen) und suche nach Erfahrungsberichten. Mehr nicht.
                  Wenn Du in Ruhe Argumente gegen JavaScript-Obfuscation vorbringen kannst, ohne mir gleich wieder Habgier, bösen Willen, Naivität oder technische Unwissenheit zu unterstellen, höre ich sie mir gerne an.

                  so ein Javascript-Obfuskator ist einfach und schnell hergestellt,

                  Noch eine so kühne Behauptung.

                  » eine Google Suche nach Javascript obfuscator erschlägt Dich fast schon mit Hits.

                  Stimmt genau. Und was tut man, wenn man von Links erschlagen wird? Richtig, man fragt Leute nach ihren Erfahrungen. Ich habe mir bereits mehere Obfuscatoren im Netz angeschaut, und festgestellt, dass deren Fähigkeiten und Handhabung nur schwierig zu beurteilen sind. Deswegen fragte ich hier im Forum nach Erfahrungen auf dem Gebiet.

                  Ich habe mal versuct über Googe etwas mehr über Dich herauszubekommen, aber Dein Name kommt wohl zu oft vor. Oder gehörst Du etwa zu etone.de? Dann wundert es mich nicht mehr.

                  Offenbar scheine ich Dich ja sehr zu beschäftigen.
                  Ja, ich bin bei etone, aber um das rauszufinden, hättest Du kein Google bemühen müssen, ein einfacher Blick ins Selfhtml-Forum hätte es auch getan.
                  Offenbar hast Du gegen etone auch etwas.
                  Nun, vielleicht ist ja deine schlechte Meinung über unsere Arbeit gerechtfertigt, aber da ich mal nicht vermute, dass Du zu unseren Kunden gehörst, frage ich mich schon, woher Du dir dann ein Urteil erlaubst.

                  so short

                  Christoph Zurnieden

                  1. Hi,

                    Was habe ich Dir eigentlich getan, dass du jetzt anfängst, über mich herzuziehen?

                    Nicht gegrüßt? ;-)
                    Nein, ich habe nicht über Dich hergezogen. Sollte es dennoch den Anschein erweckt haben bitte ich um Entschuldigung, das war nicht beabsichtigt.
                    Vielleicht hat mich aber auch Deine Mailadresse zu ein wenig Stichelei gereizt?

                    Du weisst weder, um welche Projekte es konkret ging und geht, noch kennst du die  technische Vorraussetzungen, Anforderungen, die Server-Umgebung usw. - etwas kühn, da technische Entscheidungen in Fragen zu stellen, meinst Du nicht?

                    Nein, das mag vieles sein, aber mit Sicherheit nicht kühn.
                    Es gibt einige Grundprinzipien in einem Client-Server-Programm. Eines davon: wenn Du nicht möchtest, das der Client etwas über Deine Logik (aka Dein Programm) erfährt, halte alles auf dem Server. Das hast Du aber nicht getan. Da das aber auch nicht unmöglich ist, war es Deine freie und willentliche Entscheidung etwas von der Logik auf den Client auszulagern. Jetzt möchtest Du diesen Kuchen aber gleichzeitig behalten und verzehren. Das haut nunmal nicht hin. Es gab technische Gründe für die Auslagerung? Welche bitteschön? Das einzige, was heutzutage zählt sind Kosten und das einzige, was heutzutage im Netz immer noch richtig Geld kostet ist Transferleistung. Diese Transferleistung möchtest Du reduzieren, indem Du einiges der Logik auf den Client auslagerst, damit die Daten schon etwas aufbereitet aber vor allem kleiner sind, ja? Demnach hat also der Kunde nicht für die Javascripte bezahlt sondern für den Service der Datenreduktion, oder? Dem Kunden kann es somit schnurzpiepenegal sein, ob jemand die Scripte kopiert.

                    Darüber hinaus: Es geht mir weder um vergangene Projekte, noch um ein aktuell konkretes.

                    Es hatte aber den Eindruck erweckt.

                    Ich sagte, ich möchte mir Obfuscator-Software anschauen, erwäge deren Einsatz (auf Grund von manchen Anfragen und aus gennanten Gründen) und suche nach Erfahrungsberichten. Mehr nicht.

                    Die Erfahrung zeigt, das nach _jeder_ Änderung am Code _alle_ entspr. Tests zu wiederholen sind. Da ein Obfuskator den _ganzen_ Code ändert sind auch die _ganzen_ Tests zu wiederholen. Lohnt sich der ganze Aufwand wirklich?
                    Wenn der Code wirklich so komplex ist, wie Du sagst, so sind es die Tests auch und solche Tests können bei derartig komplexer Programmlogik durchaus länger dauern als die gesammte Codeschreiberei zusammen.

                    Wenn Du in Ruhe Argumente gegen JavaScript-Obfuscation vorbringen kannst, ohne mir gleich wieder Habgier, bösen Willen, Naivität oder technische Unwissenheit zu unterstellen

                    Wenn ich das "unterstellen" soll würde das bedeuten, das ich die Eigenschaften "Habgier, bösen Willen, Naivität oder technische Unwissenheit" prinzipiell für etwas schlechtes halte, das tue ich keineswegs. Kommt immer auf die Umstände an.

                    höre ich sie mir gerne an.

                    Dann fasse ich mal zusammen:

                    • es funktioniert nicht (nur um vollständig zu sein)
                    • es kann zu Beweisnot bei Urheberrechststreitigkeiten führen.
                    • es ist nicht ökonomisch
                    • ist es doch ökonomisch, dann ist der zu schützende Code so billig, das es peinlich wirken könnte.
                    • wenn es der Kunde verlangt: der Kunde ist König
                    • wenn Du es dem Kunden aufschwatzen kannst: Du hast genügend Kunden?

                    Das macht 4 Punkte dagegen und anderthalb dafür.

                    so ein Javascript-Obfuskator ist einfach und schnell hergestellt,
                    Noch eine so kühne Behauptung.

                    Wie lange benötigt man, etwas Perl (oder irgendeiner anderen Sprache Deiner Wahl, meinetwegen Ook) zu schreiben, das alle Variablen kürzt, Leerzeichen entfernt und alles durch die ach so beliebte Vectormangel dreht? Zehn Minuten oder weniger?
                    Was ist daran kühn?
                    Gib mir eine gute Flasche Bordeaux und einen ruhigen Abend Zeit und ich jage Dir den Code so derart durh den Fleischwolf, das das Ergebnis eher nach einem Auszug aus /dev/urandom denn nach Javascript aussieht. Hilft aber trotzdem nix.

                    Ich habe mal versuct über Googe etwas mehr über Dich herauszubekommen, aber Dein Name kommt wohl zu oft vor. Oder gehörst Du etwa zu etone.de? Dann wundert es mich nicht mehr.

                    Offenbar scheine ich Dich ja sehr zu beschäftigen.

                    Naja, einmal C&P in Google rein ist jetzt nicht unbedingt viel Arbeit gewesen ;-)
                    Allerdings war der Grund einfacher: irgendwoher glaubte ich Deinen Namen zu kennen.

                    Ja, ich bin bei etone, aber um das rauszufinden, hättest Du kein Google bemühen müssen, ein einfacher Blick ins Selfhtml-Forum hätte es auch getan.
                    Offenbar hast Du gegen etone auch etwas.
                    Nun, vielleicht ist ja deine schlechte Meinung über unsere Arbeit gerechtfertigt, aber da ich mal nicht vermute, dass Du zu unseren Kunden gehörst, frage ich mich schon, woher Du dir dann ein Urteil erlaubst.

                    Weil die Seiten von etone.de und deren Kunden im Netz veröffentlicht sind. Eine kurze, wenn auch wahrscheinlich unvollständige Liste an Kunden ist auf der Seite von etone.de zu finden. Da es auch noch eine Selbstdarstellung gibt, kann ich das Produkt mit eben jener Selbstdarstellung vergleichen. Das Ergebnis ist recht unterdurchschnittlich, einige der Seiten solltest Du besser nicht hier in's Forum zur Begutachtung stellen. Oder vielleicht doch?

                    so short

                    Christoph Zurnieden