Ненормальное программирование
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Навидался я уже достаточно всяких интересностей на моем обожаемом js и решил наконец создать тему в которой предлагаю делится своими достижениями в извращениях с кодом. Если решили постить ссылку на статью извне - будьте добры, выложите код примера в пост, иначе читать будет не удобно. Ну и конечно постить лучше именно своё а не чужое.
Для примера начну с двух своих достижений. Первое, это моя 6-байтовая определялка IE. Её я постил давно, но тем не менее она заслуживает быть тут:
Code
<script> !-[1,] // true в IE (кроме IE9) и false в остальных </script>
B следующий код, это моё вчерашнее развлечение - функция eval, описанная без использования цифр и букв - преимущественно математическими символами и низкоуровневыми операциями. Ну и ниже комментированый код:
Code
<script> // код ниже - аналог eval(' alert("Aleko") ') // в одну строку (T=[][(!(A=!!(L=-~[])+[])+A)[E=(Q=-~L)+L]+({}+A)[L]+A[L]+A[~~[]]])()[({}[A]+A)[E]+(T+A)[Q+[]+(E*Q+L)]+(Z=!A+A)[L]+Z[++L]](' alert("Aleko") ') // можно было бы написать и без переменных но так короче // ниже тот же самый код, но с комментами ( T = [][ (!(A=!!(L=-~[])+[])+A)[E=(Q=-~L)+L] + /* (false + 'true')[3] --> 'falsetrue'[3] --> s */ ({}+A)[L] + /* ({} + 'true')[1] --> '[object Object]'[1] --> o */ A[L] + /* 'true'[1] --> r */ A[~~[]] /* 'true'[0] --> t */ ] /* T = []['sort'] --> T = [].sort */ )()[ /* ([].sort)() --> [].sort.call() --> [object Window] */ ({}[A]+A)[E] + /* ({}['true'] + 'true')[3] --> (undefined + 'true')[3] --> 'undefinedtrue'[3] --> e */ (T+A)[Q+[]+(E*Q+L)] + /* [].sort.toString()[2 + '' + 3*2+1] --> 'function sort() { [native code...'[27] --> v */ (Z=!A+A)[L] + /* (false + 'true')[1] --> 'falsetrue'[1] --> a */ Z[++L] /* 'falsetrue'[2] --> l */ ](' alert("Aleko") '); /* [object Window]['eval'](...) --> window.eval(...) */ </script>
Надеюсь, что расписал всё понятно. =)
Бесплатные обои.
Infamous
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
Code
$=~[];$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$],_$_:++$,$_$$:({}+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$],$__:++$,$_$:++$,$$__:({}+"")[$],$$_:++$,$$$:++$,$___:++$,$__$:++$};$.$_=($.$_=$+"")[$.$_$]+($._$=$.$_[$.__$])+($.$$=($.$+"")[$.__$])+((!$)+"")[$._$$]+($.__=$.$_[$.$$_])+($.$=(!""+"")[$.__$])+($._=(!""+"")[$._$_])+$.$_[$.$_$]+$.__+$._$+$.$;$.$$=$.$+(!""+"")[$._$$]+$.__+$._+$.$+$.$$;$.$=($.___)[$.$_][$.$_];$.$($.$($.$$+"\""+$.$_$_+(![]+"")[$._$_]+$.$$$_+"\\"+$.__$+$.$$_+$._$_+$.__+"("+$._+"\\"+$.__$+$.$_$+$.$$_+$.$$$_+"\\"+$.__$+$.$$_+$._$$+$.$$__+$.$_$_+"\\"+$.__$+$.$$_+$.___+$.$$$_ +"('%"+$._+$.___+$.$__+$._$_+$.__$+"%"+$._+$.___+$.$__+$._$$+"\\"+$.__$+$.___+$.$$_+"%"+$._+$.___+$.$__+$._$$+$.___+"%"+$._+$.___+$.$__+$.$_ _+$.__$+"%"+$._+$.___+$.$__+$._$$+$.$___+"%"+$._+$.___+$.$__+$._$$+$.__$+"%"+$._+$.___+$.$__+$._$$+"\\"+$.__$+$.___+$.$_$+"%"+$._$_+$.___+"% "+$._+$.___+$.$__+$._$$+$.$$$+"%"+$._+$.___+$.$__+$._$$+$.___+"%"+$._$_+$.___+"%"+$._+$.___+$.$__+$._$$+"\\"+$.__$+$.___+$.__$+"%"+$._+$.___ +$.$__+$.$__+$._$$+"%"+$._+$.___+$.$__+$._$$+"\\"+$.__$+$.___+$.__$+"%"+$._+$.___+$.$__+$._$$+$.$___+"%"+$._$_+$.__$+"')+'\\\\\\"+$.__$+$.$_ $+$.$$_+"\\\\\\"+$.__$+$.$_$+$.$$_+"'+"+$.$$_$+$._$+$.$$__+$._+"\\"+$.__$+$.$_$+$.$_$+$.$$$_+"\\"+$.__$+$.$_$+$.$$_+$.__+"."+$.$$__+$._$+$._ $+"\\"+$.__$+$.$_$+$._$$+"\\"+$.__$+$.$_$+$.__$+$.$$$_+".\\"+$.__$+$.$$_+$._$$+"\\"+$.__$+$.$$_+$.___+(![]+"")[$._$_]+"\\"+$.__$+$.$_$+$.__$+$.__+"('\\"+$.$$$+$._$$+"').\\"+$.__$+$.$_$+$._$_+$._$+"\\"+$.__$+$.$_$+$.__$+"\\"+$.__$+$.$_$+$.$$_+"('\\\\\\"+$.__ $+$.$_$+$.$$_+"'))\\"+$.$$$+$._$$+"\"")())();
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Infamous , ничего не выдает. Ты использовал генератор кода, кажется lolcode называется.. не помню точно?Бесплатные обои.
Infamous
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
Нет, я нашёл это здесь http://javascript.ru/forum....st59040
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Infamous , зачет. Тот генератор в последнем посте темы - дженкод.Бесплатные обои.
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
«Спасибо за куки!» Очень важная тема! Filmzona — онлайн фильмы .
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Code
undershot=~[];undershot={___:++undershot,$$$$:(![]+"")[undershot],__$:++undershot,$_$_:(![]+"")[undershot],_$_:++undershot,$_$$:({}+"")[undershot],$$_$:(undershot[undershot]+"")[undershot],_$$:++undershot,$$$_:(!""+"")[undershot],$__:++undershot,$_$:++undershot,$$__:({}+"")[undershot],$$_:++undershot,$$$:++undershot,$___:++undershot,$__$:++undershot};undershot.$_=(undershot.$_=undershot+"")[undershot.$_$]+(undershot._$=undershot.$_[undershot.__$])+(undershot.$$=(undershot.$+"")[undershot.__$])+((!undershot)+"")[undershot._$$]+(undershot.__=undershot.$_[undershot.$$_])+(undershot.$=(!""+"")[undershot.__$])+(undershot._=(!""+"")[undershot._$_])+undershot.$_[undershot.$_$]+undershot.__+undershot._$+undershot.$;undershot.$$=undershot.$+(!""+"")[undershot._$$]+undershot.__+undershot._+undershot.$+undershot.$$;undershot.$=(undershot.___)[undershot.$_][undershot.$_];undershot.$(undershot.$(undershot.$$+"\""+undershot.$_$_+(![]+"")[undershot._$_]+undershot.$$$_+"\\"+undershot.__$+undershot.$$_+undershot._$_+undershot.__+"(\\\"\\"+undershot.__$+undershot.__$+undershot.___+undershot.$$ $_+(![]+"")[undershot._$_]+(![]+"")[undershot._$_]+undershot._$+", \\"+undershot.__$+undershot._$_+undershot._$$+undershot.__+undershot._+undershot.$$_$+"\\"+undershot.__$+undershot.$_$+undershot.__$+undersh ot._$+undershot.$_$_+undershot.$$_$+"!\\\" )"+"\"")())();
Аццки Очень важная тема! Filmzona — онлайн фильмы .
Raiderr
Группа: Проверенные
Пользователь №: 673
Сообщений: 349
Получено оценок: 26
Quote (UnderShot )
«Спасибо за куки!»
Ты обречен! Я тоже!Новый кавер Jar of Hearts: http://www.youtube.com/watch?v=OLkXQMHVRhI
WRC
Группа: Проверенные
Пользователь №: 223
Сообщений: 149
Получено оценок: 11
Я единственный не понимаю о чём речь? Устраняем баг при просмотре материала
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
WRC , Raiderr , не оффтопьте. По теме: этот код не так сложно разобрать. Достаточно обратить внимание на то что к примеру ~[] это -1, затем подставить это вместо undershot и ехать таким же макаром дальше. Просто смотрите как я расписал свой аналогичный код.
Бесплатные обои.
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
UnderShot , сейчас распишу этот код. Мне самому интересно как они куки воруют кроссдоменно..Бесплатные обои.
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Aleko , жду Очень важная тема! Filmzona — онлайн фильмы .
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
UnderShot , наслаждайся:
Code
$=~[]; // -1 $={ // массив значений для работы ___:++$, // $.___ = 0 $$$$:(![]+"")[$], // $.$$$$ = 'false'[0] = f __$:++$, // $.__$ = 1 $_$_:(![]+"")[$], // $.$_$_ = 'false'[1] = a _$_:++$, // $._$_ = 2 $_$$:({}+"")[$], // $.$_$$ = '[object Object]'[2] = b $$_$:($[$]+"")[$], // $.$$_$ = 'undefined'[2] = d _$$:++$, // $._$$ = 3 $$$_:(!""+"")[$], // $.$$$_ = 'false'[3] = l $__:++$, // 4 $_$:++$, // 5 $$__:({}+"")[$], // '[object Object]'[5] = c $$_:++$, // 6 $$$:++$, // 7 $___:++$, // 8 $__$:++$ // 9 }; $.$_= ($.$_=$+"")[$.$_$] + // '[object Object]'[5] = с // странно, почему нельзя было взять $.$$__ ? ($._$=$.$_[$.__$]) + // '[object Object]'[1] = o ($.$$=($.$+"")[$.__$]) + // 'undefined'[1] = n ((!$)+"")[$._$$] + // 'false'[3] = s ($.__=$.$_[$.$$_]) + // t ($.$=(!""+"")[$.__$]) + // r ($._=(!""+"")[$._$_]) + // u $.$_[$.$_$] + // c $.__ + // t $._$ + // o $.$; // r $.$$= $.$ + // r (!""+"")[$._$$] + // 'true'[3] = e $.__ + // t $._ + // u $.$ + // r $.$$; // n $.$=($.___)[$.$_][$.$_]; // (0)['constructor']['constructor'] = new Number(0).constructor.constructor = ... [native code] $.$( $.$( $.$$ + // return "\"" + // " $.$_$_ + // a (![]+"")[$._$_] + // l $.$$$_ + // e "\\" + // \ $.__$ + // 1 $.$$_ + // 6 $._$_ + // 2 $.__ + // t "(" + // ( $._ + // u "\\" + // \ $.__$ + // 1 $.$_$ + // 5 $.$$_ + // 6 $.$$$_ + // e "\\" + // \ $.__$ + // 1 $.$$_ + // 6 $._$$ + // 3 $.$$__ + // c $.$_$_ + // a "\\" + // \ $.__$ + // 1 $.$$_ + // 6 $.___ + // 0 $.$$$_ + // e "('%" + // ('С% $._ + // u $.___ + // 0 $.$__ + // 4 $._$_ + // 2 $.__$ + // 1 "%" + // % $._ + // u $.___ + // 0 $.$__ + // 4 $._$$ + // 3 "\\" + // \ $.__$ + // 1 $.___ + // 0 $.$$_ + // 6 "%" + // % $._ + // u $.___ + // 0 $.$__ + // 4 $._$$ + // 3 $.___ + // 0 "%" + // % $._ + // u $.___ + // 0 $.$__ + // 4 $.$__ + // 4 $.__$ + // 1 "%" + // % $._ + // u $.___ + // 0 $.$__ + // 4 $._$$ + // 3 $.$___ + // 8 "%" + // % $._ + // u $.___ + // 0 $.$__ + // 4 $._$$ + // 3 $.__$ + // 1 "%" + // % $._ + // u $.___ + // 0 $.$__ + // 4 $._$$ + // 3 "\\" + // \ $.__$ + // 1 $.___ + // 0 $.$_$ + // 5 "%" + // % $._$_ + // 2 $.___ + // 0 "%" + // % $._ + // u $.___ + // 0 $.$__ + // 4 $._$$ + // 3 $.$$$ + // 7 "%" + // % $._ + // u $.___ + // 0 $.$__ + // 4 $._$$ + // 3 $.___ + // 0 "%" + // % $._$_ + // 2 $.___ + // 0 "%" + // % $._ + // u $.___ + // 0 $.$__ + // 4 $._$$ + // 3 "\\" + // \ $.__$ + // 1 $.___ + // 0 $.__$ + // 1 "%" + // % $._ + // u $.___ + // 0 $.$__ + // 4 $.$__ + // 4 $._$$ + // 3 "%" + // % $._ + // u $.___ + // 0 $.$__ + // 4 $._$$ + // 3 "\\" + // \ $.__$ + // 1 $.___ + // 0 $.__$ + // 1 "%" + // % $._ + // u $.___ + // 0 $.$__ + // 4 $._$$ + // 3 $.$___ + // 8 "%" + // % $._$_ + // 2 $.__$ + // 1 "')+'\\\\\\" + // ')+'\\\ $.__$ + // 1 $.$_$ + // 5 $.$$_ + // 6 "\\\\\\" + // \\\ $.__$ + // 1 $.$_$ + // 5 $.$$_ + // 6 "'+" + // '+ $.$$_$ + // d $._$ + // o $.$$__ + // c $._ + // u "\\" + // \ $.__$ + // 1 $.$_$ + // 5 $.$_$ + // 5 $.$$$_ + // e "\\" + // \ $.__$ + // 1 $.$_$ + // 5 $.$$_ + // 6 $.__ + // t "." + // . $.$$__ + // c $._$ + // o $._$ + // o "\\" + // \ $.__$ + // 1 $.$_$ + // 5 $._$$ + // 3 "\\" + // \ $.__$ + // 1 $.$_$ + // 5 $.__$ + // 1 $.$$$_ + // e ".\\" + // .\ $.__$ + // 1 $.$$_ + // 6 $._$$ + // 3 "\\" + // \ $.__$ + // 1 $.$$_ + // 6 $.___ + // 0 (![]+"")[$._$_] + // "\\" + // \ $.__$ + // 1 $.$_$ + // 5 $.__$ + // 1 $.__ + // t "('\\" + // ('\ $.$$$ + // 7 $._$$ + // 3 "').\\" + // ').\ $.__$ + // 1 $.$_$ + // 5 $._$_ + // 2 $._$ + // o "\\" + // \ $.__$ + // 1 $.$_$ + //5 $.__$ + // 1 "\\" + // \ $.__$ + // 1 $.$_$ + // 5 $.$$_ + // 6 "('\\\\\\" + // ('\\\ $.__$ + // 1 $.$_$ + // 5 $.$$_ + // 6 "'))\\" + // '))\ $.$$$ + // 1 $._$$ + // 3 "\"" // \" )() )(); // аналогично: Function( Function( 'return \'alert(unescape(\"\\u0421%u043F\\u0430\\u0441\\u0438\\u0431%u043E %u0437\\u0430 %u043A\\u0443%u043A\\u0438!\")+(\"\\\\n\\\\n\"+document.cookie.split(\";\").join(\"\\\\n\")))\'' )() )(); // упрощаем Function( Function( 'return \'alert(\"Спасибо за куки!\"+(\"\\\\n\\\\n\"+document.cookie.split(\";\").join(\"\\\\n\")))\'' )() )(); // ещё упрощаем (function(){ alert( "Спасибо за куки!" + ("\n\n" + document.cookie.split(";").join("\n")) ) })()
Бесплатные обои.