aemkei / jsfuck

Write any JavaScript with 6 Characters: []()!+
jsfuck.com
Do What The F*ck You Want To Public License
8.16k stars 674 forks source link

Does not work in IE10 #17

Closed hazzik closed 8 years ago

hazzik commented 11 years ago

The IE10 inserts empty line before constructor definitions:

>> Function+"" 
"
function Function() {
    [native code]
}
" 
>> Number+"" 
"
function Number() {
    [native code]
}
" 

etc

hazzik commented 11 years ago

 " " - "n" 
 "!" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 """ - "TypeError: Object doesn't support property or method 'fintnilir'" 
 "#" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "$" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "%" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "&" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "'" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "(" - "r" 
 ")" - "(" 
 "*" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "+" - "+" 
 "," - "TypeError: Object doesn't support property or method 'ninnat'" 
 "-" - "-" 
 "." - "." 
 "/" - "TypeError: Object doesn't support property or method 'italins'" 
 "0" - "0" 
 "1" - "1" 
 "2" - "2" 
 "3" - "3" 
 "4" - "4" 
 "5" - "5" 
 "6" - "6" 
 "7" - "7" 
 "8" - "8" 
 "9" - "9" 
 ":" - "TypeError: Object doesn't support property or method 'italins'" 
 ";" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "<" - "TypeError: Object doesn't support property or method 'italins'" 
 "=" - "TypeError: Object doesn't support property or method 'fintnilir'" 
 ">" - "TypeError: Object doesn't support property or method 'italins'" 
 "?" - "TypeError: Object doesn't support property or method 'italins'" 
 "@" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "A" - "undefined" 
 "B" - "undefined" 
 "C" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "D" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "E" - "TypeError: Object doesn't support property or method 'italins'" 
 "F" - "undefined" 
 "G" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "H" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "I" - "I" 
 "J" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "K" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "L" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "M" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "N" - "N" 
 "O" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "P" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "Q" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "R" - "TypeError: Object doesn't support property or method 'italins'" 
 "S" - "undefined" 
 "T" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "U" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "V" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "W" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "X" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "Y" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "Z" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "[" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "\" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "]" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "^" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "_" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "`" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "a" - "a" 
 "b" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "c" - "n" 
 "d" - "d" 
 "e" - "e" 
 "f" - "f" 
 "g" - "undefined" 
 "h" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "i" - "i" 
 "j" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "k" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "l" - "l" 
 "m" - "undefined" 
 "n" - "n" 
 "o" - "i" 
 "p" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "q" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "r" - "r" 
 "s" - "s" 
 "t" - "t" 
 "u" - "u" 
 "v" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "w" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "x" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "y" - "y" 
 "z" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "{" - " " 
 "|" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "}" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
 "~" - "TypeError: Object doesn't support property or method 'tiundefinedtrinundefined'" 
subzey commented 11 years ago

There is a hacky way to handle IE10 behavior:

(+([]['filter']+[])[0]+10+[]['filter'])[6]

This code yields "c" both in IE10 and node

aemkei commented 11 years ago

Im on a Mac, so cant test this on IE10. What is (+([]['filter']+[])[0]+10+[]['filter']) returning?

On Node it is 'NaNfunction filter() { [native code] }' which could be done with:

[][[]]+[]['filter']
aemkei commented 11 years ago

AAh, now I got it! Nice trick to handle the line breaks in IE.

hazzik commented 11 years ago

@subzey cool!

hazzik commented 11 years ago

I've fixed this in #18