Витя поморщился. Под сходкой подразумевалась встреча юниксоидов с одного опенсорсного портала, которая проходила каждые две недели. Первое время они вдохновляли Витю и он ходил на них с удовольствием, но перезнакомившись со всеми постоянными участниками, понял, что делать ему там особо нечего. Ему хотелось общаться с кем-то, у кого можно чему-то научиться, но на сходках он обычно учил остальных сам. Брат в этом плане был отзывчивей и с удовольствием объяснял технические премудрости новичкам. Встречи проходили практически всегда в одном месте – баре «Веселый Роджер», были шумными и веселыми, а все темы разговоров вращались вокруг компьютеров и UNIX. Братья всегда были желанными гостями на любой юниксовке.
–Никаких отмазок. Хоть проветришься.
–Андрюх, реально не охота. К тому же я хочу дописать сегодня червяка.
–Ну ничего страшного, оторвешься на пару часиков.
–Знаю я ваши «пару часиков». 3 часа бесполезного трепа, а потом 2 часа еще более бесполезной пьянки. Иди один, окей?
–Окей – вздохнул Анрей.
Андрей вернулся в отличном настроении.
–Ну, как прошло? – не отрываясь от компа, спросил Витя.
–Класс. Жаль, тебя не было. Там новая девченка стала ходить, вообще супер. Мы с ней мило так пообщались.
Витя хмыкнул.
–Стрельнул у нее телефончик, надо будет позвонить.
–Валяй.
–Как твой червь?
–Готов. Иди зацени.
Андрей повесил куртку на вешалку и вошел в комнату. На экране без какой либо упорядоченности был набросан код, в котором даже хорошему программисту было сложно разобраться.
–В общем, пока ты там телефончики стрелял, я тут добавил пару функций. Теперь он, во-первых, кросс-платформенный и может заражать тачки с несколькими писишными осями – виндой, фряхой, линухом, соляркой, макос и другими. Во-вторых, теперь он распространяется не только в инете, но и через мобильные системы.
–Как?
–Способов несколько. Через SMS/MMS шлюзы и блютус. Также на зараженном компе постоянно сидит жучок, который отслеживает подключение к определенному порту и, если юзер надумает поменять прошивку или закачать на свой смартфон новых игрушек, вуаля. Еще через недавно найденный баг в Symbian OS. В общем, круче могут быть только горы.
Витя с гордостью посмотрел на неразборчивый исходник.
–Ты же говорил, что дальше четвертого кластера он не уйдет?
–А он и не уйдет. Это пока экспериментальная версия.
–Про безопасность не забыл?
–За идиота держишь? Все следы ведут на тайваньский вирьмейкерский сайт. Будет кому-то слава...
–И что твой червячок делает?
–Да ничего, в общем то.
–Вообще ничего?
–Ну, я пока писал алгоритмы размножения, думал все остальное на потом оставить.
–Давай что-то безобидное вставим, чтоб не получилось, как в прошлый раз. У меня где-то был гиф анимированный с Роджером. Он там клево хлебалом щелкает.
–Отлично. И в качестве фона что-то нужно... зловещее.
Они многозначительно переглянулись.
–Ее?
–Ну а что. Вполне зловеще.
Братья взялись за дело. Пока Андрей искал на компе тот самый гиф, Витя вставлял в код червя фоновый шум из военного архива. Все время, пока он возился с ним, его не оставляло ощущение, что он что-то забыл. Он знал, что код верный, просто где-то отсутствует маленькая, но важная составляющая. Витя стал просматривать код шума снова, но как он не пытался определить, в чем дело, решения не находил.
–Есть! – Андрей клацнул пальцами и добавил: «Заливаю тебе в аплоад. Там в папке GIF».
Вставить картинку, чтобы она высвечивалась вместе с фоновым шумом после первой перезагрузки зараженного компа, заняло у Вити не больше пяти минут. Еще некоторое время братья обсуждали, как назвать нового червяка.
–А что, «Тихая Смерть» – неплохое название для безобидной зверушки. – наконец предложил Андрей.
–Вполне. – согласился Витя, и еще одна строка в исходнике дала электронному зверьку имя.
–Вроде все готово.
–Ничего не забыл?
–Да вроде нет.
–Ну, тогда будем запускать?
Витя еще раз просмотрел код. В последний момент, глядя на фрагмент шума, его осенило. Руки сами набрали нужные строчки, а затем нажали «Откомпилировать». Оставалось только запустить получившийся экзешник.
Витя навел на него курсор и клацнул «Enter».
–Я, похоже, понял, чего не хватало в том коде. – после этого сказал он.
–Чего же? – поинтересовался Андрей.
–Запрограммированный шум был чистым. Но в одной из строк содержался цикл. Я сначала подумал, что эта формула циклическая сама по себе. Но потом дошло, что она – лишь часть всего циклического процесса. Т.е. звук не может быть чистым, он построен на определенных прерываниях. В одной из формул был подсказка, с какой частотой шло прерывание.
–Нифига не понял. Ты что, подправил код того шума?
–Ага.
–И что, он теперь дергается каждые, сколько там, секунд?
–Каждый полсекунды. Мы можем послушать оригинал.