#1452: Резидент-evil
12:00 18.11.2009, IT happens
Было это лет 15 назад, когда основной осью была MS DOS, а ситуация, когда за одной машиной по очереди работали несколько человек, была в порядке вещей.
На восемь программистов у нас в отделе приходилось три машины — по тем временам нормально. Составили расписание и обменивались часами — вдруг кого идея в неурочный час стукнет?
Был у нас в конторе один начальник начальников, который любил попрограммировать и поизучать это «грязное» дело, хотя в его непосредственные обязанности написание кода в общем-то не входило. Повадился этот начальник выпрашивать у меня машинное время — дай, дескать часок поработаю. Где часок, там и два, а выгнать его запросто тоже не получается — начальник всё же. Через пару недель у меня на лице было написано, как же он меня достал.
Ребята в отделе мне подкинули мысль: «Да напиши ты ему вирус, чтоб неповадно было». Вирус делать не стала, но за полчаса я состряпала резидентную программу, которая считала на клавиатуре число нажатий клавиши «a» (или «o» — не суть важно), а по достижени определенного числа выдавала на экран в случайном месте случайную строчку текста (напоминаю, товарищ сидел в Turbo Basic в текстовом режиме) методом прямой записи в видеопамять.
Интеренее было придумать, как засунуть программу в автозагрузку так, чтобы не сразу нашли. Вопрос решился просто — драйвером клавиатуры был всемирно известный keyrus.com Гуртяка. Я создала файл keyrus.bat, находящийся где-то в месте, известном переменной PATH, а в него прописала шуточную программу и, собственно, сам keyrus.com. В autoexec.bat keyrus был записан без расширения. Процесс закладки «мины» завершился за пять минут до конца рабочего дня.
Вечером того же дня я была обрадована звонком шефа — утром надо было поехать не в наш филиал, а в главное управление. В итоге до своего рабочего места я добралась лишь к обеду и сразу заметила малость позеленевшие физиономии наших начальственных товарищей. Чьих рук эта программа и что это просто шутка, они в конце концов поняли. А вот как её из автозагрузки убрать, за четыре часа втроём не додумались!
Зато вышеназванный начальник начальников стал еще более уважительно здороваться со мной в коридоре, а подходить к моему компьютеру и вовсе перестал. Что и требовалось!
#1453: Язык мой — враг мой
12:00 18.11.2009, IT happens
Работаю в небольшой фирме-провайдере системным администратором. Разгар сезона отпусков, конец июля. Фирма небольшая, и техподдержка наполовину в отпусках, поэтому я заменяю паренька-саппорта. Звонок:
— Техподдержка компании %provider%, меня зовут %name%, слушаю Вас.
— Мыня завут Тэнгиз, самий старший сисёмный адмын грюпи кампаный ЗАО %client%. Слющий, какого х#я у нас так плохо работаит ващ интенат и ипэ-тефоня, на?! (Ей-богу, не вру — печатаю с диктофона.)
— Сообщите, пожалуйста, код направления и ориентировочное время звонка..
— Да ты, чё, не понял?!.. @#%$!
В этом духе беседа продолжается минут пятнадцать. Выхожу на перекур. Мимо идёт наш коммерческий (ни разу его грустным не видел):
— Опа, а что за грусть в глазах?
— Да обругали..
— Кто посмел?
— Да вот из ЗАО %client%.
— Назвался?
— Ну да.
— Кто?
— Да сисадмин их.
— (задумчиво) Ага... А ну, пойдём-ка.
Директор решительно набирает номер клиента.
— Здравствуйте, компания %provider%. Я могу поговорить с вашим самым старшим администратором?
— Да! Эта я!
— Простите за вопрос, а вы русский?
— (в замешательстве) Нэ савсэм, а что?
— А то, что я русский, и исконно русских слов знаю на порядок больше вас, уважаемый «самый старший»! И на х#й послать, а то и в более далёкие пешие путешествия я могу быстрее тебя, понял?
Не все директора звери, господа!
#1454: DROP DATABASE
19:45 18.11.2009, IT happens
В то время, когда я только начинал работать с MySQL, стукнуло мне в голову подучиться слепой печати — благо топтал клавиатуру я к тому времени уже лет шесть и большинство клавиш находил на автомате, лишь иногда бросая короткий взгляд для уточнения расположения «крайних» букв вроде «й» и «ъ».
Решено — сделано. Поставил себе знаменитое «Соло на клавиатуре» и развлекался в обеденное время. Набирать не глядя я научился, но возникла маленькая проблема — прежняя привычка печатать двумя-тремя пальцами порой приводила к тому, что я путал местами две ближайшие буквы в слове, нажимая клавишу раньше, чем следовало.
И вот сижу допоздна — надо составить последовательность команд, которая возьмет кусок из одной базы и перенесет сначала в «промежуточную», где подправит индексы, а затем отправит готовые данные по месту назначения. Пишу все это в файл, потому как делать подобное вручную уже надоело. Всё готово. На всякий случай сделал бэкап, запустил и отошёл от компа размять затекшие ноги.
Возвращаюсь и вижу в консоли кучу ошибок по поводу дублирования данных. Стал разбираться. Просмотрел свой файл — опечаток вроде нет. Полез ковырять временную базу — в некоторых таблицах индекс не обновился. Снова лезу в свой файл, отыскиваю нужное место... и сползаю под стол от хохота. Торопливость, помноженная на несовершенство навыка скоропечатания, сыграла со мной злую шутку: вместо «UPDATE» я умудрился напечатать «UPADET». Хорошо, что мускуль не понимает транслита!
#1455: Антилена
19:45 18.11.2009, IT happens
Был у нас в регионе небольшой сотовый оператор, где я и трудился. Ныне это филиал большого и гордого предприятия.
Занимался я там многими вещами, но любимой «игрушкой» был находящийся в подчинении SMS-центр. Больших программ я никогда не писал — работа была несколько иная, но вот мелких скриптов я настрочил массу. Про один из них и хочу рассказать.
Два-три десятка строк на перле и вуаля — пользователи интернета могут отправлять SMS друзьям и родственникам с нашего сайта (не более 10 в сутки с одного IP). Написал, запустил и забыл. Через несколько месяцев начали поступать жалобы на спам в наш колл-центр. Абонентов донимала некая Лена, которая просила закинуть ей на номер 300 рублей.
Можно было бы добавить капчу на сайт, но делать это было лень. Я немного поколдовал над скриптом и с божьей помощью в регулярных выражениях научил скрипт выбирать из массы сообщений отправленные Леной и подменять номер получателя на номер попрошайки.
Сел наблюдать. Лена опять отправила сообщения нашим абонентам с просьбами помочь материально. На месте барышне не сиделось — SMS были отправлены с тридцати разных IP-адресов. На следующий день ситуация повторилась. На третий тоже. На четвёртый Лена, видимо, включила телефон, чтобы посмотреть на улов, и получила несколько сотен входящих.
Несколько дней была тишина, но где-то через неделю напасть началась снова — немного поменялся текст сообщения. Мой скрипт был начеку — он способен был разобрать символы «0», «I», «Б» вместо нуля, единицы и шестерки в номере телефона, не говоря уже о подмене русских букв латинскими аналогами. Леночка сопротивлялась недолго и вскоре ушла искать счастья на сайтах других операторов, о чем я узнал из сообщений на их форумах.
Война окончена. Враг посрамлён, абоненты успокоились, мы довольны.