Когда-то давно я написал статью про внешний IP через VPN на VPS, прицепил туда свою реферальную ссылку и кинул на форум ЭГ. Особо ни на что не рассчитывал — среднестатистическому юзеру сей мануал вряд ли будет полезен (особенно та часть, где сказано «с виндой ебитесь как хотите»), а продвинутые и так сами всё знают. Тем не менее, определённый успех статья имела (позже её даже перекопипастили на официальный Wiki), рефералы регистрировались, а в феврале 2009 внезапно оказалось, что в честь шестилетия FirstVDS была акция по привлечению клиентов, themylogin в списке победителей и нужно срочно узнать размер футболки. Ну круто, чо. Супер крутая сисадминская футболка. Вот такая:
Особенно я её никогда не носил — засветил в универе один раз (всем было похуй) да кинул в шкаф. Какая-то стрёмная надпись, фактически превращает человека в ходячую рекламу. У меня root от FirstVDS. У меня автомобиль Запорожского завода. У меня сифилис от Маши Якубовой. Применение ей нашлось только на физкультуре (так мы познакомились с GreatCornholio), ну и сейчас, видимо, придётся носить, потому что с коротким рукавом помимо неё есть только белая рубашка (один раз надел — два постирай) и две стрёмных и маленьких футболки.
И почему-то только сейчас подумал, что будет супер круто пойти в ней на экзамен по ОСОСТ. Почему мне становится некомфортно при мысли об этом экзамене? Потому что там нужно знать определение командной строки и классификацию веб-сайтов, а списать это говно, по рассказам сдававших групп, не получится совсем никак. Ну да ладно, будь что будет. Обидно, что от неё не воняет (тру-одмин, +10 баллов в рейтинг) и нет пивных пятен (тру-одмин, +10 баллов в рейтинг), зато есть белые, интересно откуда 
Так вот, соответственно, если на меня обратят, соответственно, внимание и зададут вопрос на, соответственно, засыпку: а что на ней, соответственно, написано, что отвечать? Ну понятно, что тут хексдампают рандомную хуетень, потом её тээрят и вместе с каким-то хламом выводят на консоль, а поподробнее?
Давайте разбираться. В читаемом виде команда выглядит вот так:
dd if=/dev/random\ | hexdump -v -e '"//@rY#vdYR.u " 8/1 "%02x" " t@# #rl+ Ho ex@#\n"'\ | tr "Y#.RH@t" "str.tiH"\ | xargs -n 7 printf "\033[2J\rh%sp:%sf%s/p?%s\n%s C%sC %s %s" "tt"
Сначала всё понятно: читаем рандомные данные и выводим на стандартный вывод. Беда только в том, что если с умным видом ввести это в терминал обычного десктопа и откинуться на спинку кресла, ожидая смешного результата, не произойдёт ровным счётом ничего. Вообще. Потому что откуда возьмутся случайные данные в одиноко стоящем компьютере? Тут надо либо усиленно двигать хотя бы мышь (и ещё неизвестно когда сгенерируется \n, чтобы буфер сбросился и ценный срач поехал дальше по конвееру), либо читать всё-таки с urandom. Ну да ладно, не суть важно.
Дальше пускаем пыль в глаза при помощи hexdump. Опция -v заставляет программу не умничать и обрабатывать входные данные как есть — иначе, если на вводе появится строка, равная только что выведенной (ну вдруг?), то вместо её обработанной выведется звёздочка. Ладно, ок. Дальше. Опция -e указывает непосредственно форматную строку. Если открыть ман (тут не фортран, описание форматов занимает полтора экрана 80x25), можно легко понять, что по такой форматной строке будет выведено сначала //@rY#vdYR.u , потом 8 раз по байту в 16ричном виде (итого 16разрядное 16ричное число), и, наконец, t@# #rl+ Ho ex@# с переносом в конце. То есть следующему tr'у пойдут на вход строки типа
//@rY#vdYR.u be3b05677d04a441 t@# #rl+ Ho ex@# //@rY#vdYR.u 461f5e04e1a2ce46 t@# #rl+ Ho ex@# //@rY#vdYR.u 9dbc584e4d6bc0ba t@# #rl+ Ho ex@# //@rY#vdYR.u a90546d0948db710 t@# #rl+ Ho ex@#
tr заменяет символы первой строки на символы второй. Поскольку заменяются символы Y, #, ., R, H, @ и t, и ни одно из них не участвует в записи 16ричных чисел, мы можем быть уверены, что следующему printf'у пойдёт на вход вот такие строки
//irstvds.ru be3b05677d04a441 Hit trl+ to exit //irstvds.ru 461f5e04e1a2ce46 Hit trl+ to exit //irstvds.ru 9dbc584e4d6bc0ba Hit trl+ to exit //irstvds.ru a90546d0948db710 Hit trl+ to exit
Да, пыль в глаза. Ладно. Дальше идёт xargs. Он скинет printf'у вышеприведённые 6 слов и ещё одно пустое, т.к. -n 7 (после уже скинутого tt, то есть первый %s будет tt, второй — //irstvds.ru, третий — be3b05677d04a441 и так далее). Последовательно подставляя это всё, получим, что выводиться на терминал будет следующее:
\033[2J\rhttp://irstvds.ruf{ЧИСЛО}/p?Hit\ntrl+ CtoC exit
Где {ЧИСЛО} — то самое 16разрядное 16ричное число. \033[2J — ESC-последовательность очистки терминала, дальше возврат каретки и вывод невразумительной хуеты. В итоге имеем чёрный терминал и изредка моргающие внизу надписи типа
http://irstvds.ruf461f5e04e1a2ce46/p?Hit trl+ CtoC exit
Вряд ли это задумывалось? Давайте разберёмся.
Очень странно, что слов xargs'у на вход попадает 6, а printf'у он передаёт 7. Да и видно, что два слиплись: // и irstvds.ru. Давайте добавим этот пробел в форматную строку hexdump'а:
dd if=/dev/random\ | hexdump -v -e '"// @rY#vdYR.u " 8/1 "%02x" " t@# #rl+ Ho ex@#\n"'\ | tr "Y#.RH@t" "str.tiH"\ | xargs -n 7 printf "\033[2J\rh%sp:%sf%s/p?%s\n%s C%sC %s %s" "tt"
Вот так гораздо лучше! Внизу терминала меняются ссылки вида http://firstvds.ru/p?f461f5e04e1a2ce46 и висит надпись Hit Ctrl+C to exit. Всё просто как оказалось. Мерцает, конечно, и сильно, но тут уж ничего не поделаешь: слишком быстро приходят данные из /dev/urandom. По ссылке редирект на старую ныне нерабочую авторизацию — видимо, там всё-таки что-то было. Интересно, сколько народу всё же прорвалось туда через эту халатность печатников? (Или специально был подвох?) Я нашёл всего два упоминания в блогах об этой футболке: в первом ничего вводить даже не пытались, во втором не разобрались. Обидно.
Вчера как раз платил за хостинг и посмотрел сколько мне накапало за клиентов. Нехило:
ЭГ уже давно раздаёт белые IP по 40 рублей всем желающим, а VPS всё ещё используют. Видимо, для других целей. Супер крутой!
Кстати, с копеечными, но зато нетрудовыми доходами недавно началась ржака:
Больше сотни в день! Для сравнения зелогин:
В два раза хуже
Пойду вешаться.
Ты в ней на пляж ездил, как минимум!

А ты за 3 минуты всё прочитал и понял 
(01:54:39) themylogin: http://thelogin.ru/blog/post/a-u-menya-root-ot-firstvds/
Сегодня, 01:57 #1
Alive
кстати какой то косяк был.
я про майку прочитал и сразу коммент написал.
а потом всё прочитал, а он как не отправленный опять висел.

отправил в 2.07 ещё раз.
он вроде один там числился. так один и остался.
не понятно

Добавлено через 12 часов 2 минуты
бля... перечитал, что написал...
Непонятно!



Добавлено через 2 минуты
http://yandex.ru/yandsearch?text=%D0%A3+%D0%BC%D0%B5%D0%BD%D1%8F+root+%D0%BE%D1%82+FirstVDS&stpar2=%2Fh0%2Ftm0%2Fs1&stpar4=%2Fs1&lr=65

http://img-fotki.yandex.ru/get/14/sopov.0/0_843c_298565d5_XL

Доступные тэги: <b>, <i>, <s>, <u>, <a href="">, <img src="" /> (загрузить), <pre>, <quote>
- themylogin › Самое дорогое в жизни Вчера, 02:19
- ramwoolf › Am I not always be wanting this? (x8) 16 мая, 23:08
- anonymous › Написание «не» с различными частями речи 16 мая, 16:06
- anonymous › A Tragedy in the Air 15 мая, 18:24
- themylogin › Итоги 2011 15 мая, 12:10
- themylogin › На гелике езжу 13 мая, 16:24
- anonymous › Waking up at ten 13 мая, 13:16
- themylogin › Жук 12 мая, 11:55
- themylogin › Давайте шутки из твиттера продолжим развивать здесь 7 мая, 11:03
- anonymous › Шевченко лох 6 мая, 14:02








