Stefan Muenz: + (GRAFIK) 216 Standardfarben als Hackerscript

Liebe Forumsleute,

auch ich klaue gern mal woanders. In diesem Fall im Internet Professional Forum von CompuServe, wo einer der besten aus der Szene, P@eng, regelmaessig postet. Er hat dort einen Beispielcode gepostet, der wirklich das Attribut "cool" verdient! Hier als komplette kleine HTML-Datei zum Kopieren und Ausprobieren:

===============================
<html><head><body>
<a href="javascript:t='';c=new Array('00','33','66','99','CC','FF');for(i=0;i<6;i++){t+='<table width=100%>';for(j=0;j<6;j++){t+='<tr>';for(k=0;k<6;k++){L=c[i]+c[j]+c[k];t+='<td bgcolor='+L+'>'+L}t+='</tr>'}t+='</table>'};with(document){write(t);void(close())}">
<nobr><font color="#0000ff"><b>216 Standard Farben</b></font></nobr></a>
</body></html>

viele Gruesse
  Stefan Muenz

  1. Hi Stefan,

    mit großem Interesse hab ich das Script in eine Datei gepackt und gestartet... Und jetzt?

    Hab ich mir damit wohl einen hyperintelligenten Virus eingefangen, was ich aber eigentlich dem quelltext nicht endnehmen kann? *eg*

    Oder hab ich einfach nur die falschen Browser (NS 4.5, NS 4.0x, IE4), die mit der Interpretation des ganzen nicht nachkommen?

    Na, egal, aber mich interessiert schon, was soll passieren, wenn ich das script aufrufe?

    Grüße

    Thomas Fritz

    PS: bei netsi zeigter mir gar nix an, bei IE nur diverse zahlen (000000000033....) Soll das der geniale effekt sein? Das wage ich zu bezweifeln ;-)

    1. Hallo Thomas

      mit großem Interesse hab ich das Script in eine Datei gepackt und gestartet... Und jetzt?

      Na, denn also zum Sofort-Testen gleich in der Endablage bereitgestellt:
      <../../sfarchiv/src/colors.htm>
      Ich hab's mit MSIE5 und Netsi4 getestet: tut wie soll.

      viele Gruesse
        Stefan Muenz

      1. Hi,

        jo, klappt jetzt, keine Ahnung, warum datt bei mir nicht ging.

        Iss übrigens wirklich wunderschön ;-)

        Bis demnächst

        Thomas

        1. Hi,

          jo, klappt jetzt, keine Ahnung, warum datt bei mir nicht ging.

          lag wohl nur an den Leerzeichen! Nach schlichtem Copy&Paste ging es bei mir auch nicht. Ein Blick in den erzeugten Quellcode verriet mir: "<tablewidth=100%>" war der Anfang! Ich habe den Code dann in eine Zeile gepackt und dabei das Leerzeichen eingefügt, schon ging's :-)

          Iss übrigens wirklich wunderschön ;-)

          Stimmt :-)

          Cheatah

      2. Na, denn also zum Sofort-Testen gleich in der Endablage bereitgestellt:
        <../../sfarchiv/src/colors.htm>
        Ich hab's mit MSIE5 und Netsi4 getestet: tut wie soll.

        klappt sogar mit Opera - sollte auf längere sich die scnöde Tabelle in SELFHTML ersetzen ;-)

        Kai Lahmann

    2. Hi Thomas!

      mit großem Interesse hab ich das Script in eine Datei gepackt und gestartet... Und jetzt?

      Oder hab ich einfach nur die falschen Browser (NS 4.5, NS 4.0x, IE4), die mit der Interpretation des ganzen nicht nachkommen?

      Leider war da ein paar kleine Fehler im copy&paste vom Stefan.

      PS: bei netsi zeigter mir gar nix an, bei IE nur diverse zahlen (000000000033....) Soll das der geniale effekt sein? Das wage ich zu bezweifeln ;-)

      Hier das korrigierte script :

      -------
      <html><head>
      <title></title>
      </head><body>
      <a href="javascript:t='';c=new Array('00','33','66','99','CC','FF');for(i=0;i<6;i++){t+='<table width=100%>';for(j=0;j<6;j++){t+='<tr>';for(k=0;k<6;k++){L=c[i]+c[j]+c[k];t+='<td bgcolor='+L+'>'+L}t+='</tr>'}t+='</table>'};with(document){write(t);void(close())}">
      <nobr><font color="#0000ff"><b>
      <p>216 Standard Farben</b></font></nobr></a> </p>
      </body></html>
      -------

      Man beachte die spaces bei table width;td bgcolor;new Array
                                                      ^^          ^^                ^^
      Viel Spaß
      Frank

      P.S.: Du kannst bei NS mit dem Befehl 'javascript:' eine console aufrufen, welche dir Fehler in javascript Funktionen zeigt - sehr hilfreich beim entwickeln :-)

  2. Hallo allerseits und einen besonderen Dank an Stefan Muenz für die stets
    großertigen Handbücher...(das musste mal gesagt werden ;-)
    Also, ich hab da noch was schöneres gefunden...

    Probierts mal aus und danket dem Autor...

    _________________________________________
    <html>

    <head>  
    

    <SCRIPT LANGUAGE="JavaScript">
    <!--BEGIN Script
    //Author:  The Radiance Group, Inc.  (info@radiancegroup.com)
    //Web Site:  http://www.radiancegroup.com

    function makeArray(q){
    for(i=1 ; i <= q ; i++){this[i]=0}}
    Colors = new makeArray(7);
    Colors[1] = "00";
    Colors[2] = "33";
    Colors[3] = "66";
    Colors[4] = "99";
    Colors[5] = "CC";
    Colors[6] = "FF";
    // END Script -->
    </SCRIPT>
    </head>

    <body>  
    <CENTER>  
    

    <table cellspacing = 0 cellpadding = 0>
    <script language="JavaScript">
    for(i=1 ; i <= 6 ; i++){
    for(j=1 ; j <= 6 ; j++){
    for(k=1 ; k <= 6 ; k++){
    var thiscolor = Colors[i] + Colors[j] + Colors[k];
    document.writeln("<tr><td height = 20 bgcolor = "#" + thiscolor + "" align =
    right><a href = ");
    document.writeln("'' onMouseOver = "document.bgColor = '" + thiscolor +
    "'">" + thiscolor + "</a></td></tr>");
          }
       }
    }
    </script>
    </table>
    </CENTER>
    </body>

    </html>
    ________________________________________

    1. Hallo Dennis

      Also, ich hab da noch was schöneres gefunden...

      Sicher? <g>
      Hier noch mal meine "Direktschreibfassung" - keine 400 Bytes bei ordentlicher Formatierung, also pro Farbe ca. nicht viel mehr als 1,8 Byte Speicherverbrauch:

      <html><head></head><body>
      <script language="javascript">
      t="";
      c=new Array("00","33","66","99","CC","FF");
      for(i=0;i<6;i++)
      {
      t+="<table width=100%>";
      for(j=0;j<6;j++)
      {
        t+="<tr>";
        for(k=0;k<6;k++)
        {
         L=c[i]+c[j]+c[k];
         t+="<td bgcolor="+L+">"+L;
        }
        t+="</tr>";
      }
      t+="</table>";
      };
      with(document)
      {
      write(t);
      void(close());
      }
      </script>
      </body></html>

      viele Gruesse
        Stefan Muenz

  3. Hallo

    <html><head><body>
    <a href="javascript:t='';c=new Array('00','33','66','99','CC','FF');for(i=0;i<6;i++){t+='<table width=100%>';for(j=0;j<6;j++){t+='<tr>';for(k=0;k<6;k++){L=c[i]+c[j]+c[k];t+='<td bgcolor='+L+'>'+L}t+='</tr>'}t+='</table>'};with(document){write(t);void(close())}">
    <nobr><font color="#0000ff"><b>216 Standard Farben</b></font></nobr></a>
    </body></html>

    Ich hätte da schnell eine JS-Frage:
    Wozu braucht es am Schluss diesen void-Befehl? close() allein würde doch auch genügen, oder sehe ich das falsch?

    Gruss, Beat

    1. Hallo Beat

      Wozu braucht es am Schluss diesen void-Befehl? close() allein würde doch auch genügen, oder sehe ich das falsch?

      Kann ich leidér nicht beurteilen, da ich den Code nur uebernommen habe. Ich selber waere sicher nie auf die Idee gekommen, an der Stelle ein void() zu benutzen, und du hast sehr wahrscheinlich Recht, dass das voellig ueberfluessig ist. Ich habe bei dem Code des Original-Postíngs ohnehin den Eindruck, dass da ein paar Befehle und Formatierungen nur fuer den spaeteren Rechtsanwalt drin sind <g>

      viele Gruesse
        Stefan Muenz