Nok1a: Quellcode verschlüsseln??

hi @ all,

wollte mal fragen ob es irgendwie möglich ist den quellcode zu verschlüsseln oder net anzeigen zu lassen die rechte maustaste zu sperren ist ja net so der hammer unter ansicht... kann man den ja immer sehen!! :-( also kann man den verschlüsseln??

mfg dani alias Nok1a

  1. Hi,

    wollte mal fragen ob es irgendwie möglich ist den quellcode zu verschlüsseln oder net anzeigen zu lassen die rechte maustaste zu sperren ist ja net so der hammer unter ansicht... kann man den ja immer sehen!! :-( also kann man den verschlüsseln??

    </faq/#Q-32d>

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.mud-guard.de/
  2. Hallo!

    Ich nehme an, Du meinst Javascript und/oder HTML. Beides kann man nicht nicht lesbar machen. Lesbar ist die Antwort oft im Archiv.

    Gruß
    Viennamade

  3. hi @ du,

    wollte mal fragen ob es irgendwie möglich ist den quellcode zu verschlüsseln...

    Gegenfrage: Ist dir dein Quelltext peinlich?

    Ansonsten: Es gibt ein paar wirklich stümperhafte Methoden das mit JavaScript zu machen (Suche im Archiv oder bei http://www.google.de). Aber außer Problemen bei dir und v.a. den Benutzern wirst du nix erreichen.

    Aber wer will schon einen Quelltext klauen, der selbst seinem Erzeuger peinlich ist?

    Gut's Nächtle,
    dbenzhuser

  4. Hallo,

    wollte mal fragen ob es irgendwie möglich ist den quellcode zu verschlüsseln oder net anzeigen zu lassen die rechte maustaste zu sperren ist ja net so der hammer unter ansicht... kann man den ja immer sehen!! :-( also kann man den verschlüsseln??

    Und wie möchtest du den Quelltext dann anzeigen lassen, wenn er doch verschlüsselt ist?

    Jonathan

  5. Hallo,

    wollte mal fragen ob es irgendwie möglich ist den quellcode zu verschlüsseln

    Klar. Nimm ein Verschlüsselungsprogramm Deiner Wahl. Damit ist dann der Quellcode verschlüsselt und keiner außer Dir (und vielleicht der NSA) kann ihn sehen. Natürlich auch nicht der Browser, der ihn anzeigen will... Achja, der soll das trotzdem können? Ja dann musst Du dem Browser auch die Informationen mitschicken, die er braucht, um das zu entschlüsseln. Aber wenn Du die Informationen mitschickst, dann kann ja jeder den Quelltext wieder entschlüsseln.

    Tja...

    Viele Grüße,
    Christian

  6. Hi Dani,

    versuch's mal hier:

    http://www.od-asd.com/ >> Weblook 1.0 <<

    Das Programm habe ich damals vom ComputerChannel runtergeladen und z. Z. nur als Shareware.

    Bei "nur HTML-Code" gibt es keine Probleme, sollten Scripte enthalten sein - einfach ausprobieren ob es nach der Verschlüsselung noch funktioniert!

    Es gibt vier Verschlüsselungsstufen. Bei der ersten Stufe wird ab 'body' alles verschlüsselt.

    Der Nachteil bei der ganzen Sache - Du zwingst den Betrachter JavaScript einzuschalten. Wer das von Haus aus nicht macht guckt in die Röhre.

    Gruß
    Frank-Michael

    1. Sup!

      Diese "Quelltextverschluesselung" ist leicht zu brechen.
      Kleiner  Quellcodeausschnitt gefaellig?

      (Posting geht unten weiter...)

      <!-- o*759tw*AQ6R5ww*sn&%xdtB7ZwhT482qCOv#myX4mWwAyyk*&b$TdswkrUaU2OamcIk5qos3ZCvBJFmRqu%A4Thdh2%LtsDBvQ4OT$XSfxAi4+U2rAGwIUOgLwkcwOw3Q2sat4TYpK63v128OvxAqtqWOom9HSwIN00keTGcbC*eTTipsDS%TFwO**om2IQzzB5Ad$ncst3e5S5cRm2fR82nOmzyCBEOov8U4OkT&gm8%Se$2bO1&wLeCwvM -->
      <center><form action=http://search.yahoo.com/bin/search name=f><map name=m><area  coords=0,0,52,52 href="http://www.yahoo.com/r/c1" shape=RECT><area  coords=53,0,121,52 href="http://www.yahoo.com/r/p1" shape=RECT><area
       coords=122,0,191,52 href="http://www.yahoo.com/r/m1" shape=RECT><area  coords=441,0,510,52 href="http://www.yahoo.com/r/wn" shape=RECT><area  coords=511,0,579,52 href="http://www.yahoo.com/r/i1" shape=RECT><area
       coords=580,0,637,52 href="http://www.yahoo.com/r/hw" shape=RECT></map><img alt=Yahoo border=0 height=53 src="m5v5.gif" useMap=#m width=638><br><table border=0 cellPadding=3 cellSpacing=0 width=640>
       <tbody> <tr> <td align=middle width=205><a href="http://www.yahoo.com/s/1002"><b>Yahoo!  Travel</b></a><br><small><a href="http://www.yahoo.com/s/1003">Air</a>, <a
       href="http://www.yahoo.com/s/1005">Hotel</a>, <a  href="http://www.yahoo.com/s/1006">Vacations</a>, <a  href="http://www.yahoo.com/s/1007">Cruises</a></small></td>
       <td align=middle><a  href="http://rd.yahoo.com/M=131860.1563930.3123071.220161/D=yahoo_top/S=2716149:NP/A=767420/?http://latingrammy.yahoo.com"  target=_top><img alt="win trip to Latin Grammys" border=0 height=33
       src="hp_english3.gif" width=230></a></td> <td align=middle width=205><a  href="http://rd.yahoo.com/M=173940.1568805.3123678.31281/D=yahoo_top/S=2716149:NE/A=768170/R=0/*http://shop.store.yahoo.com/cgi-bin/clink?esteelauder2+shopping:dmad/M=173940.1568805.3123678.31281/D=yahoo_top/S=2716149:NE/A=768170/R=1/998250515+http://us.rmi.yahoo.com/rmi/http://www.esteelauder.com/rmi-framed-url/http://www.origins.com/wn/2001-08pwsamples.tmpl%3FAD_ID=1200"><b>Free
       Sample With</b><br><small>Purchase At Origins</small></a></td></tr> <tr> <td align=middle colSpan=3><input name=p size=30> <input type=submit value=Search> <a
       href="http://www.yahoo.com/r/so">advanced search</a></td></tr></tbody></table><table border=0 cellPadding=3 cellSpacing=0 width=640> <tbody> <tr> <td align=middle noWrap><font color=#ff0020>new!</font>     <a
       href="http://www.yahoo.com/s/1052"><b>Yahoo! Fantasy Football</b></a> -  sign up today for the 2001 season     <font  color=#ff0020>new!</font></td></tr>

      <tr> <td align=middle noWrap><small><b>Shop</b>  <a  href="http://www.yahoo.com/r/a2">Auctions</a> · <a  href="http://www.yahoo.com/r/cr">Autos</a> · <a
       href="http://www.yahoo.com/r/cf">Classifieds</a> · <a  href="http://www.yahoo.com/r/sh">Shopping</a> · <a  href="http://www.yahoo.com/r/ta">Travel</a> · <a
       href="http://www.yahoo.com/r/yp">Yellow Pgs</a> · <a  href="http://www.yahoo.com/r/mp">Maps</a>   <b>Media</b>  <a  href="http://www.yahoo.com/r/sq"><b>Finance</b></a>/Quotes · <a
       href="http://www.yahoo.com/r/dn">News</a> · <a  href="http://www.yahoo.com/r/ys">Sports</a> · <a  href="http://www.yahoo.com/r/wt">Weather</a><br><b>Connect</b>  <a
       href="http://www.yahoo.com/r/jb"><b>Careers</b></a> · <a  href="http://www.yahoo.com/r/yc">Chat</a> · <a  href="http://www.yahoo.com/r/ub">Clubs</a> · <a
       href="http://www.yahoo.com/r/gc">GeoCities</a> · <a  href="http://www.yahoo.com/r/gr">Greetings</a> · <a  href="http://www.yahoo.com/r/m2"><b>Mail</b></a> · <a
       href="http://www.yahoo.com/r/pf">Members</a> · <a  href="http://www.yahoo.com/r/p2">Messenger</a> · <a  href="http://www.yahoo.com/r/oa">Mobile</a> · <a
       href="http://www.yahoo.com/r/pr">Personals</a> · <a  href="http://www.yahoo.com/r/ps"><b>People Search</b></a> ·

      (Sonderzeichen sind ggf. falsch dargestellt, aber was soll's...)
      ----

      Und wie kriegt man das raus?

      Nun... einfach verschluesselte Seite runterladen, speichern, in einen Editor der Wahl (vim...) laden, und in den ersten Skriptbereich ganz oben (oder in einen neuen, ganz oben liegenden Skriptbereich) folgendes schreiben:

      mw = window.open("about:blank","mywin");
      md = mw.document;
      md.close();
      md.open("text/plain","replace");

      optrwr = window.document.write;
      optrwrln = window.document.writeln;

      function myfuncwr(t) {
      window.document.write = optrwr;
      window.document.write(t);
      md.write(t);
      window.document.write = myfuncwr;
      }
      function myfuncwrln(t) {
      window.document.writeln = optrwrln;
      window.document.writeln(t);
      md.writeln(t);
      window.document.writeln = myfuncwrln;
      document.writeln = myfuncwrln;
      }

      document.writeln = myfuncwrln;
      document.write = myfuncwr;

      Dann ganz unten einen neuen Skriptbereich anlegen und

      md.close();

      reinschreiben.

      Die so manipulierte Seite in den Browser laden, es oeffnet sich daraufhin ein Fenster, und wenn man in dem CTRL-U drueckt, sieht man den entschluesselten Quellcode (bzw., wenn man einen Browser hat, der nicht wie der Mozilla in den HTML-Modus geht, obwohl man text/plain geschrieben hat, sollte man den Quellcode auch so sehen).

      Was macht nun das Skript?
      Es ueberlaedt die Methoden document.write und document.writeln temporaer, stellt die eigentliche Funktionalitaet aber immer wieder her, so dass sich auch mehrfach rekursiv entschluesselnder Quellcode weiterhin ganz von selbst entschluesselt.
      Damit ist die ganze Verschluesselung auf einfache Weise an Ihrer IMHO groessten Schwachstelle gepackt.
      Die Webseite entschluesselt sich von selbst, die ganze Verschachtelung, um manuelles Entschluesseln zu Erschweren, ist nutzlos.

      Gruesse,

      Bio

      --
      Hail to the king!
      1. Quellcode-Kochen mit Bio :)

        Hübsch gelöst wie ich finde.

        Allerdings ist das für Klein-Heinzi-Ich-Klau-Mir-Den-Quellcode-Von-BikerRatte doch etwas zu hoch...

        Auf der angegebenen Seite wird ja nicht behauptet es wäre sicher, nur für 99% der Surfer nicht so einfach zu machen. Denke mal das ist schon erreicht...

        Aber gut, wer derartige "Verschlüsselung" einsetzt macht sich eh nur selbst lächerlich, soll jeder der es braucht von mir aus gerne weiterbenutzen :)

        PS:

        In der aktuellen PCGamesHardware ist "HTML Ciper 2.0" auf der Seite "Die beste Freeware" vorgestellt.
        Auf http://www.dark-street.com/darkstreet/htmlcipher.html findet sich dann auch dieser wirklich schön zu lesende Text:

        "Webmasters around the world are constantly moaning about thieves that steal their code and ideas. HTML Cipher is here to put a stop to that!

        HTML Cipher will encrypt your webpages so that nobody can ever view the code and try to steal and append it. HTML Cipher includes advanced options like making backup copies (incase something goes wrong and you must re-edit your pages!), right-click disable, inserting blank lines as well as custom messages."

        Selten so gelacht.

        dbenzhuser

      2. Hallo Bio,

        also ich hab mir für den ie mal das bookmarklet hier zusammengebastelt:

        javascript:FL='opener';source=document.all.tags('html')[0].outerHTML;eW=open('','','width=600,height=550');eW.focus();with(eW.document){write('<form name=fM><textarea cols=70 rows=31 name=tA wrap></textarea><input type=button value=Update onclick=with('+FL+'.document){write(document.fM.tA.value);close()}><input type=button value=Close onclick=self.close()>');eW.document.fM.tA.value=source;void(close())}

        damit konnte ich mir den spass auch ganz einfach angucken.

        Sup!

        ich hab ja hier im forum schon einige abkürzungen kennen gelernt, aber was zum t*** heist das?

        mw = window.open("about:blank","mywin");
        md = mw.document;
        md.close();
        md.open("text/plain","replace");

        optrwr = window.document.write;
        optrwrln = window.document.writeln;

        function myfuncwr(t) {
        window.document.write = optrwr;
        window.document.write(t);
        md.write(t);
        window.document.write = myfuncwr;
        }
        function myfuncwrln(t) {
        window.document.writeln = optrwrln;
        window.document.writeln(t);
        md.writeln(t);
        window.document.writeln = myfuncwrln;
        document.writeln = myfuncwrln;
        }

        document.writeln = myfuncwrln;
        document.write = myfuncwr;

        Dann ganz unten einen neuen Skriptbereich anlegen und

        md.close();

        reinschreiben.

        könntest du das noch etwas dokumentieren?

        Was macht nun das Skript?
        Es ueberlaedt die Methoden document.write und document.writeln temporaer, ...

        in bestimmt jedem dritten artikel zum programieren steht irgendwo etwas von "überladen" drin. ich stell mir da einen akku vor, der gerade platzt, weil er "überladen" wurde. :-/ *grübel*
        ist es evtl. möglich, die bedeutung jemandem zu erklären, der etwas ahnung von javascript und php hat und ganz wenig von vb und c++ ? [c++ hab ich nicht so richtig kapiert :-( ]

        freundl. Grüße aus Berlin, Raik

        1. Sup!

          javascript:FL='opener';source=document.all.tags('html')[0].outerHTML;eW=open('','','width=600,height=550');eW.focus();with(eW.document){write('<form name=fM><textarea cols=70 rows=31 name=tA wrap></textarea><input type=button value=Update onclick=with('+FL+'.document){write(document.fM.tA.value);close()}><input type=button value=Close onclick=self.close()>');eW.document.fM.tA.value=source;void(close())}

          damit konnte ich mir den spass auch ganz einfach angucken.

          Hmm... auch schlau gemacht, das.

          mw = window.open("about:blank","mywin");
          md = mw.document;
          md.close();
          md.open("text/plain","replace");

          Text-Window oeffnen...

          optrwr = window.document.write;
          optrwrln = window.document.writeln;

          Zeiger bzw. Referenzen auf die Original-Funktionen fuer write und writeln speichern.

          function myfuncwr(t) {

          Eigene Funktion, die

          window.document.write = optrwr;

          die Originalfunktion wiederherstellt...

          window.document.write(t);

          nutzt...

          md.write(t);

          ... besonders, um in das eigene Fenster zu schreiben...

          window.document.write = myfuncwr;

          ... und dann sich selbst wieder als zustaendige Funktion fuer document.write eintraegt.

          }

          function myfuncwrln(t) {

          ... das gleiche fuer writeln ...

          }

          document.writeln = myfuncwrln;
          document.write = myfuncwr;

          Original-Funktionen inital durch eigene ersetzen.

          Es ueberlaedt die Methoden document.write und document.writeln temporaer, ...

          in bestimmt jedem dritten artikel zum programieren steht irgendwo etwas von "überladen" drin. ich stell mir da einen akku vor, der gerade platzt, weil er "überladen" wurde. :-/ *grübel*

          Nun, eigentlich spricht man bei OO von Überladen, wenn naemlich eine abgeleitete Klasse eine Methode einer Überklasse "überlädt", weil sie in der abgeleiteten Klasse "anders" definiert ist.

          Wenn es eine Klasse "Deutscher" gäbe, und der Sozialhilfesatz wäre bei 500,- Euro, dann könnte z.B. diese Klasse eine Methode errechne_einkommen haben, die einfach 500 zurückgibt.

          Es könnte abgeleitete Klassen "Kind" oder "Arbeiter" geben, wo es z.B. 0 Euro einkommen gibt, und beim Arbeiter, der zusätzliche Eigenschaften hat, die über seinen Job Auskunft geben, könnte die Methode errechen_einkommen das Einkommen irgendwie aus diesen Eigenschaften berechnen.

          Die "ursprüngliche" und "allgemeingültige" Methode aus der Super-Klasse "Deutscher" wäre also bei den abgeleiteten Klassen für Kinder und Arbeiter "überladen".

          Hier hätte man eigentlich auch von "umbiegen" oder "ersetzen" sprechen können; nichts anderes wird aber im Prinzip auch beim "Überladen" gemacht.

          Gruesse,

          Bio

          --
          Gnade - was bedeutet dieses Wort?
        2. N'Obend

          in bestimmt jedem dritten artikel zum programieren steht irgendwo etwas von "überladen" drin. ich stell mir da einen akku vor, der gerade platzt, weil er "überladen" wurde. :-/ *grübel*

          Überladen heißt einfach, dass du für eine spätere Funktion nochmal den gleichen Namen verwendest.
          Je nach dem was für Variablen an die Funktion übergeben werden kann dann die richtige ausgewählt werden.
          (z.B. zwei Funktionen "add" die, wenn sie eine Zahl bekommt diese verdoppelt und bei einem String den zweimal hintereinander hängt. Oder so...)

          dbenzhuser

        3. Hallo Bio und dbenzhuser,

          danke euch beiden für die erklärungen. wieder was dazugelernt, was mir bestimmt viel helfen wird.

          freundl. Grüße aus Berlin, Raik