• Страница 1 из 1
  • 1
Форум Studio AD » Сайтостроение » Общий форум по Javascript » Ненормальное программирование (интересные извращения на javascript)
Ненормальное программирование
Aleko
Дата: Воскресенье, 18.07.2010, 17:32 | Сообщение # 1
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
Дата: Воскресенье, 18.07.2010, 19:28 | Сообщение # 2
говорун
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
Code
$=~[];$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$],_$_:++$,$_$$:({}+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$],$__:++$,$_$:++$,$$__:({}+"")[$],$$_:++$,$$$:++$,$___:++$,$__$:++$};$.$_=($.$_=$+"")[$.$_$]+($._$=$.$_[$.__$])+($.$$=($.$+"")[$.__$])+((!$)+"")[$._$$]+($.__=$.$_[$.$$_])+($.$=(!""+"")[$.__$])+($._=(!""+"")[$._$_])+$.$_[$.$_$]+$.__+$._$+$.$;$.$$=$.$+(!""+"")[$._$$]+$.__+$._+$.$+$.$$;$.$=($.___)[$.$_][$.$_];$.$($.$($.$$+"\""+$.$_$_+(![]+"")[$._$_]+$.$$$_+"\\"+$.__$+$.$$_+$._$_+$.__+"("+$._+"\\"+$.__$+$.$_$+$.$$_+$.$$$_+"\\"+$.__$+$.$$_+$._$$+$.$$__+$.$_$_+"\\"+$.__$+$.$$_+$.___+$.$$$_ +"('%"+$._+$.___+$.$__+$._$_+$.__$+"%"+$._+$.___+$.$__+$._$$+"\\"+$.__$+$.___+$.$$_+"%"+$._+$.___+$.$__+$._$$+$.___+"%"+$._+$.___+$.$__+$.$_ _+$.__$+"%"+$._+$.___+$.$__+$._$$+$.$___+"%"+$._+$.___+$.$__+$._$$+$.__$+"%"+$._+$.___+$.$__+$._$$+"\\"+$.__$+$.___+$.$_$+"%"+$._$_+$.___+"% "+$._+$.___+$.$__+$._$$+$.$$$+"%"+$._+$.___+$.$__+$._$$+$.___+"%"+$._$_+$.___+"%"+$._+$.___+$.$__+$._$$+"\\"+$.__$+$.___+$.__$+"%"+$._+$.___ +$.$__+$.$__+$._$$+"%"+$._+$.___+$.$__+$._$$+"\\"+$.__$+$.___+$.__$+"%"+$._+$.___+$.$__+$._$$+$.$___+"%"+$._$_+$.__$+"')+'\\\\\\"+$.__$+$.$_ $+$.$$_+"\\\\\\"+$.__$+$.$_$+$.$$_+"'+"+$.$$_$+$._$+$.$$__+$._+"\\"+$.__$+$.$_$+$.$_$+$.$$$_+"\\"+$.__$+$.$_$+$.$$_+$.__+"."+$.$$__+$._$+$._ $+"\\"+$.__$+$.$_$+$._$$+"\\"+$.__$+$.$_$+$.__$+$.$$$_+".\\"+$.__$+$.$$_+$._$$+"\\"+$.__$+$.$$_+$.___+(![]+"")[$._$_]+"\\"+$.__$+$.$_$+$.__$+$.__+"('\\"+$.$$$+$._$$+"').\\"+$.__$+$.$_$+$._$_+$._$+"\\"+$.__$+$.$_$+$.__$+"\\"+$.__$+$.$_$+$.$$_+"('\\\\\\"+$.__ $+$.$_$+$.$$_+"'))\\"+$.$$$+$._$$+"\"")())();
  
Aleko
Дата: Воскресенье, 18.07.2010, 20:00 | Сообщение # 3
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Infamous, ничего не выдает. Ты использовал генератор кода, кажется lolcode называется.. не помню точно?

Бесплатные обои.
  
Infamous
Дата: Воскресенье, 18.07.2010, 20:57 | Сообщение # 4
говорун
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
Нет, я нашёл это здесь http://javascript.ru/forum....st59040
  
Aleko
Дата: Воскресенье, 18.07.2010, 21:06 | Сообщение # 5
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Infamous, зачет. Тот генератор в последнем посте темы - дженкод.

Бесплатные обои.
  
UnderShot
Дата: Понедельник, 19.07.2010, 12:52 | Сообщение # 6
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
«Спасибо за куки!» :D

Очень важная тема!
Filmzona — онлайн фильмы.
  
UnderShot
Дата: Понедельник, 19.07.2010, 12:57 | Сообщение # 7
оратор
Группа: Модераторы
Пользователь №: 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
Дата: Понедельник, 19.07.2010, 13:28 | Сообщение # 8
болтун
Группа: Проверенные
Пользователь №: 673
Сообщений: 349
Получено оценок: 26
Quote (UnderShot)
«Спасибо за куки!»

Ты обречен! :D Я тоже!


Новый кавер Jar of Hearts: http://www.youtube.com/watch?v=OLkXQMHVRhI
  
WRC
Дата: Понедельник, 19.07.2010, 17:12 | Сообщение # 9
говорун
Группа: Проверенные
Пользователь №: 223
Сообщений: 149
Получено оценок: 11
Я единственный не понимаю о чём речь? O_o

Устраняем баг при просмотре материала
  
Aleko
Дата: Понедельник, 19.07.2010, 20:14 | Сообщение # 10
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
WRC, Raiderr, не оффтопьте.

По теме: этот код не так сложно разобрать. Достаточно обратить внимание на то что к примеру ~[] это -1, затем подставить это вместо undershot и ехать таким же макаром дальше. Просто смотрите как я расписал свой аналогичный код.


Бесплатные обои.
  
Aleko
Дата: Понедельник, 19.07.2010, 20:40 | Сообщение # 11
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
UnderShot, сейчас распишу этот код. Мне самому интересно как они куки воруют кроссдоменно..

Бесплатные обои.
  
UnderShot
Дата: Вторник, 20.07.2010, 00:39 | Сообщение # 12
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Aleko, жду :)

Очень важная тема!
Filmzona — онлайн фильмы.
  
Aleko
Дата: Вторник, 20.07.2010, 03:47 | Сообщение # 13
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")) )
  })()


Бесплатные обои.
  
Форум Studio AD » Сайтостроение » Общий форум по Javascript » Ненормальное программирование (интересные извращения на javascript)
  • Страница 1 из 1
  • 1
Поиск:
© Studioad.ru 2006 · 2010. Использование материалов форума на сторонних ресурсах без прямой обратной ссылки строго запрещено. Хостинг от uCoz.