Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Type <code>$</code> into the console (after running the code), and expand the object. You can then more easily analyze it.</p> <p><img src="https://i.stack.imgur.com/PIImL.png" alt="enter image description here"></p> <p>They're grabbing enough words/characters using sneaky means, and referencing them in the $ object, then using them to build the program and <code>eval</code>ing likely in a <code>Function(...)()</code> call.</p> <p>So it should boil down to...</p> <pre><code>Function('alert("StackOverflow")')(); </code></pre> <p>...or something similar.</p> <hr> <p>Beginning to unwind it, ...</p> <pre><code>$=~[]; // -1 $={ 0:++$, // 0 f:(![]+"")[$], // "f", (![]+"") is "false", and [$] gives index 0, or "f" 1:++$, // 1 a:(![]+"")[$], // "a", (![]+"") is "false", and [$] gives index 1, or "a" 2:++$, // 2 b:({}+"")[$], // "b", ({}+"") is "[object Object]", and [$] gives index 2, or "b" d:($[$]+"")[$],// "d", ($[$]+"") is "undefined", and [$] gives index 2, or "d" 3:++$, // 3 e:(!""+"")[$], // "e", (!""+"") is "true", and [$] gives index 3, or "e" 4:++$, // 4 5:++$, // 5 c:({}+"")[$], // "c", ({}+"") is "[object Object]", and [$] gives index 5, or "c" 6:++$, // 6 7:++$, // 7 8:++$, // 8 9:++$ // 9 }; $.constructor=($.constructor=$+"")[$[5]]+($.o=$.constructor[$[1]])+($.return=($.$+"")[$[1]])+((!$)+"")[$[3]]+($.t=$.constructor[$[6]])+($.$=(!""+"")[$[1]])+($.u=(!""+"")[$[2]])+$.constructor[$[5]]+$.t+$.o+$.$; $.return=$.$+(!""+"")[$[3]]+$.t+$.u+$.$+$.return; $.$=($[0])[$.constructor][$.constructor]; $.$($.$($.return+"\""+$.a+(![]+"")[$[2]]+$.e+"\\"+$[1]+$[6]+$[2]+$.t+"(\\\"\\"+$[1]+$[2]+$[3]+$.t+$.a+$.c+"\\"+$[1]+$[5]+$[3]+"\\"+$[1]+$[1]+$[7]+"\\"+$[1]+$[6]+$[6]+$.e+"\\"+$[1]+$[6]+$[2]+$.f+(![]+"")[$[2]]+$.o+"\\"+$[1]+$[6]+$[7]+"\\\")"+"\"")())(); </code></pre> <p>Then...</p> <pre><code>$.constructor=($.constructor=$+"")[5]+($.o=$.constructor[1])+($.return=($.$+"")[1])+((!$)+"")[3]+($.t=$.constructor[6])+($.$=(!""+"")[1])+($.u=(!""+"")[2])+$.constructor[5]+$.t+$.o+$.$; $.return=$.$+(!""+"")[3]+$.t+$.u+$.$+$.return; $.$=(0)[$.constructor][$.constructor]; $.$($.$($.return+"\""+$.a+(![]+"")[2]+$.e+"\\"+$[1]+$[6]+$[2]+$.t+"(\\\"\\"+$[1]+$[2]+$[3]+$.t+$.a+$.c+"\\"+$[1]+$[5]+$[3]+"\\"+$[1]+$[1]+$[7]+"\\"+$[1]+$[6]+$[6]+$.e+"\\"+$[1]+$[6]+$[2]+$.f+(![]+"")[2]+$.o+"\\"+$[1]+$[6]+$[7]+"\\\")"+"\"")())(); </code></pre> <p>...eh, lost interest.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload