Обложка Белый Хакер

Белый Хакер

Валентин Холмогоров

0% прочитано
Стандартный
Валентин Холмогоров

Белый Хакер

Глава 1. «Икс-Байт»

Книга написана при поддержке журнала «Хакер». Это продолжение романа «Хакеры.RU», первую часть можно найти здесь: https://author.today/work/483191

Бумажную версию книги можно заказать здесь: https://xakep.shop/book02

Официальная страница книги: https://author.today/work/637011/

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

Кирилл натянул на голову капюшон, сунул озябшие руки в карманы и, повернувшись спиной к монументальной фигуре Ильича, зашагал по улице Мира, которую когда-то знал наизусть, а сейчас узнавал заново — будто случайно повстречав­шую­ся спустя много лет школьную подругу. Всё вроде бы на месте: тот же потрескавшийся замёрзший асфальт, те же облупленные фонари с бумажными лоскутами оборванных объявлений, но что-то, тем не менее, изменилось. Раньше здесь был газетный киоск — теперь вырос стеклянный куб с вывеской «Чай. Кофе. Выпечка». Там, где когда-то благоухала на всю округу кислым пивом дешёвая забегаловка и скандальные продавщицы ругались с вечно поддатым дедом по прозвищу Захарыч, теперь возник салон красоты с белыми шторами. Прохожих в этот ранний час было немного, но Кирилл на всякий случай отводил глаза в сторону: Подгорск — город маленький, и натыкаться на старых знакомых здесь порой получалось чаще, чем того хотелось.

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

Так сидел Санька — вечно сосредоточенный и в то же время расслабленный, с видом человека, готового в любую минуту вскочить и куда-то бежать сломя голову. Но Саша погиб. На похороны Кирилл не ездил — приходил в себя в питерской больнице, а тело Санчо перевезли сюда, в Подгорск, и опустили в землю в закрытом гробу, если верить дошедшим до него мутным и сбивчивым слухам.

Рядом нетерпеливо бибикнула машина, нервно интересуясь, собирается ли он переходить улицу или так и намерен стоять истуканом? Кирилл обернулся, махнул водителю, чтобы проезжал, и когда снова взглянул в сторону окна, там уже никого не было. Пустой стол, вместо недопитой чашки кофе — одинокий стаканчик с салфетками и его собственное отражение в стекле. Показалось…

Он постоял ещё немного, прислушиваясь к участившемуся пульсу в висках, а потом двинулся дальше, чуть ускорив шаг и сильнее сжав пальцы в карманах.

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

В его комнате, которую мама до сих пор называла «детской», царил идеальный порядок. Книги выстроились рядком на полке, как солдаты на параде, а вот и тот самый системник — с него когда-то всё началось. Тихонечко прикрыв дверь, словно опасаясь кого-то потревожить, Кирилл прошёл в гостиную: нужно вытащить из серванта документы, которые, уезжая, он оставил здесь, а потом заглянуть к соседке тёте Тане, забрать и оплатить скопившиеся счета за коммуналку. Эту квартиру он предлагал матери продать, чтобы добавить немного денег и купить что-то в Питере, тем более недавно у него появилось в этом городе и собственное жильё. Средств, правда, хватило только на тесную и требовавшую ремонта однушку, затерявшуюся в дебрях Ржевки. Но мама от его предложения категорически отказалась, видимо, не поверив до конца в то, что её сын каким-то непостижимым образом обзавёлся своей недвижимостью в чужом мегаполисе. Кирилл вдруг подумал, что расстаться с этой квартирой навсегда всё-таки было бы безумно жаль: он попросту не мог представить себе посторонних людей, обживающих его спальню. Чуть поправив здоровье, мама твёрдо вознамерилась вернуться в Подгорск, к подругам и оставленной из-за болезни работе. Что ж, там, в Питере, она и вправду чувствовала себя одинокой и потерянной. Пусть хотя бы здесь у него останется «запасной аэродром».

Усевшись за стол, Кирилл достал из рюкзака ноутбук и подключил к нему мобильник вместо GPRS-модема. Морок, овладевший им возле уличного кафе, не давал покоя. Он испытывал даже не беспокойство, а ощущение, будто тень прошлого притащилась за ним из Питера и теперь присела рядом, настырно заглядывая через плечо. Кирилл набрал в поиске знакомое название и принялся бродить по ссылкам. Компьютерный магазин, который когда-то отжали у Санчо, теперь назывался «Икс-Байт». Он успел превратиться в небольшую торговую сеть: три точки в Подгорске, по одной — в соседних Рогочёвске и Каменке. Причём продавали там теперь не только компы и периферию, но и диски с софтом, игровые приставки и мелкую бытовую технику. Вырос бизнес, ничего не скажешь…

Кванты информации, как фрагменты пазла, один за другим укладывались в чёткую картинку. Фирма, рулившая сетью сейчас, называлась «Байкал-Маркет», только вот ни одного упоминания о её владельце отыскать не удалось, как Кирилл ни старался… Генеральный директор — это, понятно, наёмный сотрудник, гораздо интереснее, кто на самом деле стоит за этой конторой. Гугл не помог, и Кирилл принялся шерстить местный форум, где ещё пару лет назад кипела жизнь: сюда выкладывали сплетни, здесь договаривались о встречах, обсуждали, кого приняли менты и где открылась новая разливуха. Теперь сайт будто бы вымер, призрачную видимость былой тусовки создавали примерно полтора упёртых завсегдатая. Зато в архивах форума Кирилл наткнулся на фамилию Бадрин. Такого Кирилл не знал, но, если верить прочитанному, этот самый Алексей Бадрин благополучно прибрал к рукам чуть ли не треть подгорского бизнеса. Банальная, в общем-то, история: всё началось с приватизации местного сталепрокатного завода, оборудование которого пошло на металлолом, а помещения сдали под склады и офисы. Потом Бадрин выкупил редакцию областной газеты, захватил городской кабельный телеканал и подгрёб под себя основные информационные ресурсы Подгорска — кроме, разумеется, интернета. До интернета этот человек добрался чуть позже: самый крупный городской провайдер в прошлом году слился в экстазе с его телестудией, образовав местечковый телекоммуникационный холдинг, который начал поглощать самоорганизовавшиеся когда-то районные локалки одну за другой. Ну и на другие успешные проекты Бадрин старался по возможности наложить лапу. Видимо, Санин магазин просто подвернулся под руку. А Денис Алексеевич, учредитель «Байкал-Маркета», — это, стало быть, сын… Затевать войнушку с таким вот олигархом местного разлива — дело, конечно, небыстрое и чересчур хлопотное. А вот организовать им с сыночком немного интересных приключений — почему бы и нет? Может быть, Сашке там, за чертой, станет хоть чуточку веселее…

Маргарита Зиновьевна очень не любила неожиданных визитёров, но звонок в прихожей дребезжал уж слишком протяжно и настойчиво.

— Кто? — сварливо спросила пенсионерка, поднимаясь на цыпочки, чтобы заглянуть в глазок.

Можно было и не стараться: зрение с недавних пор совсем испортилось, ничего там не разглядеть, кроме мутной серой пелены.

— Жилконтора, — донёсся с той стороны молодой голос.

«Что ж, жилконтора — это не сектанты или продавцы пыле­сосов, повадившиеся шастать по подъездам в последнее время», — подумала Маргарита Зиновьевна, возясь с непослушным замком.

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

— Добрый день, меня по вашему адресу из ЖЭКа прислали, — вежливо поздоровался парень. — Скажите, пожалуйста, у вас телевизор нормально показывает? Помех, посторонних шумов нет?

— Как это нет? — оживилась старушка, для которой телевизор остался, пожалуй, последней радостью в жизни. — Всё время полосы какие-то идут, и звук такой паршивый стал, как из колодца. А когда Мишка, балбес с первого этажа, шарманку свою включает, так вообще сплошная рябь по экрану. Как это называется, забыла… «Дренди», что ли?

— Всё понятно, — нахмурился парень. — Нужно проверить и перенастроить коммунальную антенну. Вы случайно не знаете, как на крышу попасть? У нас мастер участка на больничный ушёл, ключ не у кого попросить…

— А есть у меня ключ, есть, — суетливо затараторила Маргарита Зиновьевна, оборачиваясь к полочке в прихожей, — только ты это, обратно мне его принеси, слышишь? Не забудь!

— Обязательно принесу, не беспокойтесь, — заверил её молодой человек.

Прошёл час томительного ожидания, медленно потянулся второй. Маргарита Зиновьевна заварила чаю, включила и выключила телевизор, но никаких изменений в качестве картинки не обнаружила. Видать, обманул её всё-таки паршивец, утащил ключ с концами. До чего безответственная и безалаберная молодёжь пошла, совершенно невозможно им доверять!

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

Парень из ЖЭКа стоял на крыше перед разложенным на парапете ноутбуком, сжимая в руке какую-то странную конструкцию с проводом, прикрученным… Возможно, ей показалось, но это подозрительным образом напоминало пустую жестяную банку из-под растворимого кофе на деревянной палке. Такая же в точности банка с надписью Nescafe, доверху наполненная окурками, стояла у них на лестничном подоконнике в качестве коллективной пепельницы. Обернувшись, парень встретился с пенсионеркой взглядом.

— Ты чего тут делаешь-то? — сварливо поинтересовалась Маргарита Зиновьевна, полагавшая, что парнишка давным-давно ушёл по своим делам, забыв запереть чердак и вернуть ей заветный ключ.

— Чтобы правильно настроить антенну, нужно сначала найти источник помех и отфильтровать сигнал по частоте и амплитуде, — терпеливо, но совершенно непонятно ответил тот. — У нас для этого имеется специальное оборудование, видите? Но анализ занимает время. Потерпите, как закончу, я сразу же верну вам ключ. Зато у вас появится целых три новых телеканала! Нужно будет только телеприёмник перенастроить…

— Ладно, ладно, работай… — закивала головой пенсионерка, разворачиваясь в тесном дверном проёме.

И вправду, чего это она? Толковый вроде мастер, делом занят. А то, что волосатый, так это времена нынче такие…

Избавившись от назойливого внимания старушки, Кирилл вновь уткнулся в экран ноутбука. Как говорится, первое правило ворчалкинга[1] — не попадаться на глаза ворчащим пенсионерам. Плоская крыша кирпичной двухэтажки располагалась уж слишком удобно: прямо напротив центрального магазина «Икс-Байт», самого первого, который когда-то открыл ещё Санчо. Переулок узенький, расстояние маленькое, уровень сигнала беспроводной сети вполне приемлемый, спасибо самодельной антенне. А выяснить, где обитает главная по подъезду, не составило ни малейшего труда. Сеть, правда, прикрыта WPA, ну да стемблер уже выдал Кириллу все необходимые данные. Вслед за тем запущенная им программа швырнула в эфир сигнал деаутентификации, приказывающий сбросить соединение с подключёнными к точке доступа сетевыми клиентами, перехватила пакеты с запросом повторной авторизации и вытащила из потока данных хеш, который Кирилл тут же отправил на взломанный им когда-то удалённый дедик. Теперь мощный сервер, расположенный где-то в Канаде, старательно брутил PSK-ключ.

Кирилл смотрел, как в терминале медленно ползёт счётчик перебранных последовательностей. Канадская машина работала не спеша, но без устали. Спустя четверть часа терминал мигнул: «Key found» — похоже, местный админ не утруждал себя установкой сложных паролей.

— Готово, — пробормотал он, хрустнув пальцами.

Кирилл скормил полученный ключ своему wpa_supplicant’у, и тот без лишних вопросов вписался в локалку. Сеть оказалась мелкой, населённой вполне привычным зверьём: пяток рабочих станций, старенький сервер на Windows 2000 с открытым SMB и ещё одна машина — на FreeBSD, которая явно использовалась в качестве шлюза.

— Как говорил Карлсон, самое время немного пошалить, — криво усмехнувшись, произнёс Кирилл, и его пальцы забегали по клавиатуре.

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

Проснувшись наутро в десятом часу, Денис по привычке встал на весы, однако вместо цифр на экране высветились три латинские буквы. Лаконичная надпись LoB обычно означала low battery, но иссякшего заряда севшей батарейки хватило только на то, чтобы вывести на дисплей обидное LoH, после чего весы сдохли окончательно. А потом зазвонил мобильный.

— Денис Алексеевич, вы не могли бы приехать на Октябрьскую? — раздался в трубке встревоженный голос ассистентки Алины. — Это срочно.

— Настолько срочно, что и позавтракать уже нельзя? — недовольно засопел тот.

— Желательно побыстрее, Денис Алексеевич. У нас тут все компьютеры взбесились.

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

— Кассы не работают, — пояснила внезапно появившаяся из подсобки Алина, — и компьютеры все заблокировались…

— Как это заблокировались? — сердито поинтересовался Денис, не успевший толком позавтракать. — Так разбло­кируйте!

— Вы лучше сами взгляните, — потянула его за рукав Алина.

Над компом, стоявшим возле кассы, склонился вечно лохматый сисадмин Вова. При виде начальства он стыдливо попытался отвернуть экран в сторону, но Денис рывком дёрнул монитор к себе, оттеснив админа плечом. Всё пространство дисплея занимала фотография самого Дениса Алексеевича Бадрина, сделанная на каком-то корпоративе в позапрошлом году, очень неудачная — с выпирающим вперёд безразмерным пузом и обвислыми, как у бассета, щеками. А ниже красовалась огромная корявая надпись ярко-красными буквами: «ЛОХ!»

— Это какой-то необычный винлокер, — залепетал непонятное Вова, — он блокирует клавиатуру и мышь, я думал, там шелл, как обычно, подменили, но он даже винду загрузить не даёт… Похоже, в загрузочную запись прописался и при старте машины передаёт управление на вирусный код, который сразу вот это запускает…

— Ты мне мозги не пудри, — рявкнул Бадрин, чувствуя, как его обвислые щёки наливаются кровью, — крутись как хочешь, но чтобы компы и кассы через час работали!

— А с этим что делать, Денис Алексеевич? — наивно хлопая ресницами, спросила Алина.

Проследив за её взглядом, Бадрин уткнулся глазами в бегущую строку, закреплённую изнутри торгового зала напротив витрины так, чтобы её было хорошо видно с улицы. По стеклу неторопливо скользило отражение разноцветного, как клоунский парик, текста: «Наши компы — полное дерьмо! Не покупайте их! Бадрин — лох! Панки хой!»

— Там пароль поменялся… — снова залепетал Вова. — Теперь в настройки не попасть…

— Отключить! — заорал, будто раненый бизон, Денис Алексеевич. — Немедленно!

Нет, нужно срочно перекусить, от пережитого стресса аппетит разыгрался ещё сильнее. В двухэтажке напротив вроде бы была какая-то тошниловка…

«Чёрт знает что такое», — бормотал он про себя, протягивая банковскую карточку девушке за стойкой. Терминал жалобно пискнул, из чрева кассовой машины выполз огрызок ленты.

— Недостаточно средств на карте, — печально сообщила девушка.

— Как это? — оторопело тряхнул головой Денис.

Ещё накануне на его счёте лежала весьма неприличная сумма.

— Не знаю, — пожала плечами девица, — попробуете другую карту? Может, наличные?

Надо срочно ехать в банк, выяснять, куда пропали деньги. Только машину нужно заправить… Чёрт, а ведь наличных у него и вправду нет ни копейки…

Несчастный сисадмин Вова растерянно пялился в синий экран BIOS, раздумывая, стоит ли заняться переустановкой винды прямо сейчас, или лучше сразу пойти и утопиться в Подгорке? Когда он делал последнюю резервную копию? Кажется, пару месяцев назад… Это с рабочих станций, а с сервака так вообще при царе Горохе… За спиной раздалось знакомое сопение. Он обернулся и невольно втянул голову в плечи. Алинка, выдра губастая, куда-то свалила, оставив его один на один с разъярённым начальством. А вот, собственно, и оно. Вова зажмурился, не ожидая от очередного появления Бадрина ничего хорошего.

— Володя, — отводя взгляд в сторону, непривычно мягким голосом произнёс Денис Алексеевич, — у тебя деньги есть? Одолжи мне тысчонку, пожалуйста.

Компьютер громко пискнул и перезагрузился. На экран предательски выплыла уже знакомая картинка с лаконичной красной надписью.

-------------

[1] Ворчалкинг (англ. war-chalking) — практика поиска и обозначения точек беспровод­ного доступа Wi-Fi. — Прим. авт.

Глава 2. «Синий экран»

Мир чем-то похож на странный вендинговый автомат по продаже последствий твоих собственных поступков. Ты бросаешь туда действия, а в ответ он порой выдаёт что-то совершенно неожиданное, и самое обидное, что инструкции к этому автомату не прилагается. Возня с «Икс-Байтом» заняла гораздо больше времени, чем Кирилл рассчитывал изначально, поэтому заранее купленный обратный билет пришлось сдать. Когда он всё-таки собрался возвращаться, внезапно выяснилось, что свободных мест в поездах уже не осталось. Он купил билет на самолёт, причём через Москву, и добрался до ближайшего к Подгорску аэропорта на междугороднем автобусе. Однако на этом злоключения не закончились: его рейс улетел в столицу с опозданием, из-за чего Кирилл пропустил свой самолёт в Питер. До следующего оставалось целых три часа, которые предстояло чем-то занять.

Он заприметил этого небрежно одетого, болезненно-худо­ща­вого человека с короткой бородкой и тёмно-русыми волосами ниже плеч, бесцельно болтаясь по аэропорту в ожидании объявления на посадку. И не скажешь точно, сколько ему лет: острые черты лица казались какими-то вневозрастными, точно у ликов на древних иконах. Человек сидел по-турецки прямо на полу, подложив под спину рюкзак, и увлечённо стучал по клавиатуре разложенного на коленях IBM ThinkPad. Поддавшись приступу любопытства, Кирилл подошёл сзади и заглянул в экран. Он ожидал увидеть там белую простыню «Ворда» или окошко с чатом «аськи», но вместо этого перед ним предстал строгий и смутно знакомый текстовый интерфейс. Сверху — ровные колонки процессорных регистров, ниже, под списком локальных переменных, лежали дампы памяти, доступные для изучения и правки. Ещё ниже громоздились инструкции, открывающие тайны работы программы, а в самом низу мигала курсором панель команд, где каждое слово — это заклинание, способное повелевать потоком выполнения и менять ход событий.

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

Незнакомец не просто пользовался древним дебагером, а жил в нём. Он работал. Отлаживал что-то, ловко перескакивая между дисассемблером, стеком вызовов и регистровыми дампами. Любопытство обжигало, как раскалённое железо в кузнечном горне, но Кирилл боялся нарушить молчание, ругая себя за внезапно накатившую робость. Однако незнакомец заговорил с ним первым.

— Не знаешь, где тут ближайшая розетка? — Голос у него оказался тихим и как будто слегка усталым. — Батарейка почти сдохла, шесть процентов осталось.

— В том конце зала, — махнул рукой Кирилл, — возле выхода к стойкам регистрации вроде видел несколько.

Его визави с тоской посмотрел в указанном направлении и передёрнул плечами.

— Далеко… Это ж надо подрываться, крутить хвостом…

— Боишься пропустить самолёт? — осторожно предположил Кирилл.

— Нет, бояться имеет смысл, когда ты куда-то спешишь. А мне и спешить-то особо некуда. Ну, доберусь домой на полдня позже, в масштабах вселенной от этого ничего не изменится.

— Над чем работаешь? — Кирилл бросил косой взгляд на экран ноутбука.

— Над собой главным образом, — усмехнулся его собеседник. — С переменным успехом. А если по делу, пытаюсь вот разгрызть головоломку, которую одна местная контора подкинула, раз уж всё равно рейс задержали. Может, статью потом напишу… Если самолёты до Краснодара всё-таки начнут летать.

— А если не начнут?

— Значит, придётся поселиться здесь. И прямо отсюда рыть нору куда-нибудь в Европу. Или в Америку…

Он захлопнул крышку ноута, небрежно запихнул его в рюкзак и поднялся на ноги.

— Надо, пожалуй, чего-нибудь заточить, а то непонятно, сколько ещё тут торчать придётся.

Накинув рюкзак на плечи, незнакомец махнул рукой и зашагал прочь, в сторону приветливо светящихся вывесок многочисленных кафе и ресторанчиков.

— Тебя как звать-то? — бросил ему в спину Кирилл.

— Незуми, — не оборачиваясь, ответил тот.

«Не-зу-ми», — повторил про себя Кирилл, глядя вслед удаляющейся худощавой фигуре. Кажется, он где-то слышал это странное японское слово… вот только никак не мог припомнить — где.

До дома он доковылял в сгущающихся сумерках под липким мокрым снегом, падающим из-под затянувшего небо бесцветного покрывала. Фонари горели через один, от реки Лубьи, вокруг которой ютились старые частные дома, веяло могильным холодом, а переломанная и собранная врачами в больнице нога начала предательски ныть. «Типичный Питер», — с раздражением подумал Кирилл, тщетно отряхивая налипшее на ботинки снежное месиво.

Что дальше делать — непонятно. Мать через неделю уедет в Подгорск, у него же нет ни постоянного занятия, ни стабильного источника дохода. С голоду он, конечно, не помрёт, на форумах всегда подкинут какую-нибудь халтуру, дело вовсе не в этом — пугало отсутствие долгосрочных планов. Кирилл пытался заглянуть в собственное будущее, но перед мысленным взором вставала всё та же бесцветная серая пелена, что нависла сейчас над его головой. И от этих туманных перспектив становилось тоскливо. Может, и вправду, как советовал Фреш, сменить фамилию, сделать новый загран и махнуть куда-нибудь в Гоа, жить в хижине на берегу Индийского океана, ломая по заказу анонимусов чужие сайты? Или свалить в какую-нибудь глухую деревню, где нет пробок, суеты, но есть стабильный интернет? А может…

У торца «хрущёвки», мимо которой он сейчас проходил, тусовалась шумная ватага подростков: в руках мелькали банки «Ягуара», сыпали искрами алые огоньки сигарет. Рядышком зиял спуск в полуподвал, похожий на вход в мрачную пещеру, а над ним, как маяк в ночи, тускло светился пластиковый короб с неровной надписью: «Компьютерный клуб „Синий экран“». «Название символичное, — подумал про себя Кирилл. — Судя по здешним обитателям, они перманентно пребывают именно в этом состоянии».

Взгляд выхватил из полумрака обрывок бумажного листа, криво прилепленного к входной двери на скотч: «Требуется сисадмин. Обращаться к менеджеру». Повинуясь какому-то внезапному порыву, Кирилл свернул с тротуара и, пригнув голову, спустился по бетонным ступеням в пугающую неизвестность.

Клуб оказался маленьким: тесный предбанник с деревянной стойкой, заваленной разноцветными флаерсами, за узким проходом в зал — кирпичные стены в стиле лофт, вдоль которых расставлены длинные столы, похожие на школьные парты. У входа лежит на тумбочке стопка журналов — «Страна игр», «Игромания», «Навигатор игрового мира», «Магия ПК», между ними затесалась парочка прошлогодних номеров «Хакера».

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

За стойкой скучал прыщавый очкастый паренёк ненамного старше основной массы посетителей этого заведения.

— Тебе чего? — поднял он взгляд, когда Кирилл подошёл поближе, раздвинул залежи рекламного мусора и облокотился на грязноватую, давно мечтающую о влажной тряпке сто­лешницу.

— Бигмак, картошку фри и колу безо льда, — ответил он, стараясь не заржать при виде вытянувшейся в тщетной попытке переварить услышанное физиономии парня: не хватало только вращающихся песочных часов в глазах, как в 95-й винде.

— У вас там объява на входе висит, что админ требуется, — вдоволь насладившись его замешательством, пояснил Кирилл, — ну так вон он я, пришёл.

— А-а-а, — с облегчением выдохнул парень. — Так бы сразу и сказал. Меня Серёга зовут. В компах шаришь?

— Немного. Но я быстро учусь.

— Тогда пойдём, покажу нашу кухню.

Кухня, как и показалось на первый взгляд, была весьма небогатой.

— На компах икспишка стоит, но с кастомным шеллом, проводник, браузер и стандартный интерфейс заблокированы, — пустился в объяснения Серёга. — Тут локалка протянута, на админском компе 2003-й сервер, оттуда можно сеткой рулить, задавать время по сеансам. Вот тут у нас микроволновка, чтобы хрючево разогреть. Здесь сортир, только воду в бутылку пластиковую набирай из раковины и с собой бери, там слив сломан. И посетителей в тубзик не пускай, а то всё засрут. Пусть в кусты бегают. Народ тут разный, но в основном спокойный, по вечерам людей побольше, днём почти нет никого. Пиво и «Яга» официально в клубе запрещены, но всё равно пьют, только на улицу их выгоняй, внутри нельзя. Смены у нас два через два или день через день, как договоримся. Платим тыщу триста за выход, в среднем двадцатка в месяц получается, плюс-минус. Ну, что скажешь?

Серёга уставился на Кирилла снизу вверх, и в стёклах очков отразилась робкая надежда — видно, совсем уж задолбался он куковать тут в одиночку.

— Годится, — хлопнул его по плечу Кирилл. — Когда приступать?

— Да прям завтра. Часам к десяти подгребай, я тебе открою, потом дубликат ключа сделаем.

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

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

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

В магазин он по пути заглянуть забыл, поэтому ужинать пришлось растворимой лапшой с овсяным печеньем впри­куску.

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

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

Влад, которого он представлял себе каким-то серьёзным коммерсантом, оказался таким же в точности прыщавым ботаном, как и сам Серёга. Из полуобмолвок и полунамёков Кирилл сделал вывод, что клуб они организовали вдвоём, взяв в аренду у местного ЖЭКа этот освободившийся после разорения видеосалона подвал. Влад при этом имел постоянную работу в качестве админа в какой-то коммерческой конторе, и потому считал себя очень крутым и важным человеком, да и вообще изо всех сил старался казаться серьёзнее и взрослее, чем был на самом деле. Выглядело это со стороны довольно-таки забавно. Он же, судя по всему, обставил клуб списанными мониторами и собранными из разношерстной комплектухи системными блоками, после чего счёл главную миссию выполненной — на точке безвылазно трудился Серёга, а Владик осуществлял общее стратегическое руководство, хотя на словах они по-прежнему оставались равноправными партнёрами. Покрутившись в подвале пару месяцев без выходных, Сергей одичал и взвыл, вслед за чем его партнёр любезно согласился нанять ещё одного администратора, чтобы дать своему товарищу хоть немного отдохнуть.

Расставшись с парочкой начинающих бизнесменов, Кирилл обвёл тоскливым взглядом доставшееся ему хозяйство и принялся за дело. Наполнил пластиковое ведро холодной водой из-под крана, вымыл пол. Потом сбегал в соседний хозмаг за «Доместосом» и надраил толчок, в который казалось невозможным зайти без противогаза. Заглянул в коричневый от ржавчины сливной бачок: он и вправду был сломан, но не фатально — если купить новую внутрянку с поплавком, унитаз имел все шансы обрести вторую жизнь. Видимо, и у Серёги, и у Влада руки оказались заточены исключительно под клавиатуру, иначе сортир они уже давно привели бы в порядок. Кирилл успел разобрать и повыкидывать макулатуру на стойке, когда в клуб потянулись первые посетители.

Сначала пришёл худощавый паренёк в рваном худи — явно из местных. Купил два часа, плюхнулся в кресло и принялся лупить по клавишам, запустив «Контру». Потом явились двое постарше, оплатили время налом и сели в дальнем углу, громко переговариваясь. Кирилл мельком посмотрел в монитор: парочка оказалась поклонниками Half Life.

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

— Во-ооу, а этого чёрта я не знаю! — воскликнул «лидер» с пивом, глянув мельком на Кирилла. — Ща, пацаны, разложимся…

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

Тем временем парень открыл банку с хрустким «пшшш», сделал глоток и поставил её рядом с клавиатурой. Кирилл глубоко вздохнул, выбрался из-за стойки и направился к смутьяну.

— Привет, — не повышая голоса, сказал он. — С пивом тут нельзя. Алкоголь — строго на улице.

Парень оторвался от экрана, взглянул на Кирилла с ленцой.

— А ты кто, папочка? — хмыкнул он.

— Админ, — спокойно ответил Кирилл. — Первый день, но с правилами знаком. У нас тут без бухла, вообще.

— Да ну нафиг! — протянул кто-то из пацанов. — У тебя чё, лицензия на трезвость, что ли?

— Лицензия не нужна. Просто выгоню. Не уберёшь банку — пойдёшь отдыхать на свежем воздухе.

Секунда тишины. Лидер чуть подался вперёд.

— Ты чё гонишь? Я за комп заплатил. У меня время идёт!

Кирилл чувствовал, как внутри медленно начинает закипать, но внешне оставался спокоен. Он уже сталкивался с такими парнями — мнят себя крутыми, но, получив настоящий отпор, сдают назад.

— Никто не мешает тебе играть. Только без пива. Убери — и всё будет нормально. Оставишь — отключу комп и попрошу уйти.

— Попрошу? — передразнил тот, вставая. — Слышь, чувак, не прикидывайся здесь боссом. Это тебе не армия.

Он поднялся в полный рост, оказавшись чуть ниже Кирилла, но уверенности в нём хватало с избытком.

Кирилл выдержал паузу и повторил негромко, но отчёт­ливо:

— Бери банку и вали на улицу. Последнее предупреждение.

Парень помедлил. Один из его приятелей тихо произнёс:

— Зря ты быкуешь, Ванёк… Этот чувак щас всех выгонит.

— Заткнись, Лёха, — буркнул «Ванёк». — Сам разрулю.

Он взял банку, сделал ещё один медленный глоток и неторопливо пошёл к выходу. Уже на пороге остановился и демонстративно поставил недопитое пиво на стойку, а потом небрежным движением столкнул банку на пол:

— Ой, извиняюсь. Я случайно.

Кирилл не ответил. Он просто смотрел, как тот выходит, и мысленно засёк время — если через пять минут не вернётся с очередной банкой пиваса, всё в порядке. Надо бы заставить его прибрать за собой, но это потом. Оставшиеся ребята переглянулись, кто-то нервно усмехнулся. Атмосфера чуть раз­ря­дилась.

Один из них, тот, что казался самым младшим, повернулся к Кириллу:

— Он типа всегда такой. Забей.

Кирилл кивнул:

— Правила для всех одинаковы. Мне тут работать.

Он вернулся за стойку, проверил, всё ли в порядке с оплатами и временем. За окном мелькнула тень — кажется, «Ванёк» курил у стены.

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

«Привет, Kicks. Если ты ещё жив, будь завтра на Финляндском вокзале у паровоза в 13:30».

Номер отправителя оказался незнакомым, да и симку Кирилл недавно сменил. Тот, кто отправил эту SMS, знает его хакерский ник, но кто это? Старые друзья с форумов? Ни с кем из них Кирилл никогда не встречался в реале, да и неоткуда им взять его номер. Или Трикси, которая всегда умела оставлять такие шифровки? А может, кто-то из конторы, где они с Санчо трудились последние месяцы перед той злополучной ночью?

Он убрал телефон в карман. Кто бы это ни был, нужно идти.

Глава 3. Охота на ламера

По перронам Финляндского вокзала, будто по дюнам Финского залива, гулял стылый ветер. Паровоз с номером 293 замер в своём стеклянном саркофаге, провожая погасшими глазами фар спешащих на электрички пассажиров. Когда-то, в 1917 году, он привёз в Петроград Ленина и в наказание за этот проступок остался навеки заточённым за стеклом, словно в прозрачной глыбе льда. А сам Ильич замер бронзовым истуканом неподалёку — на привокзальной площади.

Кирилл взглянул на часы и поёжился: он по своему обыкновению явился на встречу чуть раньше назначенного времени и уже успел основательно замёрзнуть. Но ждать пришлось недолго — едва он собрался спрятаться от пронизывающего ветра в здании вокзала, его окликнули.

— Кикс!

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

— Привет, Шпала. Ты где мой номер раздобыл?

— Многие знания — многие печали, — философски отозвался тот. — Один пришёл? Это хорошо. Пойдём местечко потеплее поищем, нефиг тут мёрзнуть.

Подходящая забегаловка, где в этот час не было ни одного посетителя, отыскалась совсем рядом, на улице Лебедева.

— Я из нашей конторы полтора месяца назад свалил, как только срок обязательных работ вышел, — потягивая из похожего на цветочную вазу бокала «Василеостровское», начал рассказ Шпала. — Предлагали остаться, но я решил послать их к чёрту. Вроде и работа нормальная, но всё равно как в тюрьме. Устроился в другую фирму, тоже инфобезом занимается.

— А остальные как? — отхлебнув из своей «вазы», поинтересовался Кирилл.

Пиво он не любил, но за компанию решил попробовать продукт местной пивоварни. Горечь разлилась по языку, и он, поморщившись, поставил кружку обратно на стол.

Шпала пожал плечами:

— Да не общаюсь я ни с кем особо. Тебе вот только решил набрать. Короче, когда эта DDoS-атака началась, ну, ты врубаешься о чём речь, я до самого конца не верил, что это всё «Терра» устроила…

— Я и сам сомневался, — согласился Кирилл, — ведь они, считай, себе приговор подписали. Кто с ними связываться после такого будет, софт покупать, акции? Да от их программ нормальные люди избавятся теперь при первой же возможности. Тут ибэшники по всему миру на уши должны были встать…

— А ни хрена, Кикс, — снова приложился к бокалу Шпала, — всё немного сложнее, чем ты думаешь. Главные заказчики, которые из правительства, утонуть им в любом случае не дадут. Да и не тонет такое… Это мне Кущин рассказал, а он в теме. Короче, там у них уже давненько грызня шла между двумя противоборствующими группировками за финансирование и кусок пирога повкуснее. Одни продвигали идею, что, мол, все войны будущего будут вестись исключительно в сети, и хотели форсировать разработку кибероружия вроде этого самого «Перцептрона». Если взлетит, такую систему можно потом тому же государству продать за очень немалые суммы. Озолотишься, как какой-нибудь «Локхид», который истребители штампует. Другие говорили: «Не занимайтесь фигнёй и давайте клепать танчики». Эти за традиционные подходы и в кибервойны будущего не верят. На всех, как ты понимаешь, денег не хватит. А тут подвернулся отличный случай проверить теорию на практике, да не первыми ударить, а как бы ответить на внешнее вторжение. Показать, так сказать, наглядно, на что идут бабки налогоплательщиков, а заодно и эффективность этого самого кибероружия протестировать. И конкурентам, которые на бабло претендуют, нос утереть. Они ведь там уверены, что атака на «Терру» была санкционирована на государственном уровне…

— И что-то мне подсказывает, что это не прям стопроцентное заблуждение.

— Я не о том сейчас, Кикс. — Шпала одним глотком осушил половину своей «вазы» и вытер пену с лица тыльной стороной ладони. — Мы тут в нашей конторе, ну, где я сейчас работаю, постоянно сеть мониторим. Активность ботнетов отслеживаем и всё такое. Так вот, в сетях с айпишниками «Терры» в последнее время ходит подозрительный шифрованный трафик… Ну как подозрительный… Необычный.

— Думаешь, оно никуда не делось? — насторожился Кирилл.

Шпала криво усмехнулся:

— А сам как считаешь? Должны же у таких серьёзных ребят остаться бэкапы. Полностью изолированные от внешнего интернета air-gapped-серверы или целые сети, например. Не могли они не предусмотреть такую защиту. Так что рано или поздно опомнятся, точно тебе говорю. Только вот не это самое неприятное.

— А что?

— Да клиенты их, которым мы хвост накрутили. Вернее, ты накрутил. Я с Кущиным пообщался, он мужик умный, хоть и упёртый, как баран. У ФБР десятки собственных отделений по всему миру и больше полусотни представительств. А есть ещё Интерпол и Европол с их киберкрайм-подразделениями. Все наши ники, IP-адреса, имейлы и аккаунты на форумах там известны, и, если захотят, они любого могут упрятать в камеру лет эдак на тридцать.

— Если найдут.

— Ну, я-то тебя нашёл…

Шпала допил своё пиво, поставил опустевший бокал на стол и, поднявшись, натянул на голову капюшон.

— В общем, Кикс, я тебя предупредить хотел, чтобы ты того… Был поосторожнее. Ничего ещё не закончилось, чувак. Такие вот дела… Ладно, бывай.

Кирилл проводил его взглядом, дождавшись, когда чёрный капюшон растворится в толпе прохожих за окнами кофейни. Внутри неприятно кольнуло: а ведь они со Шпалой никогда не были близкими друзьями и работали вместе совсем недолго. Да и в те времена не слишком часто общались. И вдруг тот решил его разыскать, проявить заботу… За этим предупреждением может скрываться что угодно — от искреннего желания предостеречь до чьей-то непонятной игры. И не факт, что игра эта — в его пользу.

Открыв крышку ноута и запустив браузер, Кирилл смачно выругался. В его новые обязанности входилоне только поддерживать чистоту в компьютерном зале и в сортире, но и следить за порядком на сайте игрового клуба. Ну как сайт — так себе, домашняя страничка на сервере провайдера, предоставлявшего «Синему экрану» доступ в интернет. Зато с гостевой книгой. Вот в этой гостевой книге и творился сейчас форменный хаос: некто под ником iV1rus непрерывно постил туда матерные сообщения, не отличающиеся особым словарным разнообразием. Кирилл насчитал четыре десятка и даже удалил несколько, но на их месте спустя всего лишь пару минут появились новые. Судя по всему, это развлекался какой-то не слишком умный школьник, наслаждающийся своей анонимностью и полной безнаказанностью, причём Кирилл даже смутно догадывался, кто именно.

Конечно, можно закрыть поганцу доступ к сайту по IP, но тот, если в голове у него имеется хоть немного мозгов, войдёт в сеть через прокси, и всё начнётся сначала. Нужно отбить у малолетнего хулигана само желание пакостить в чужой гостевой книге. Работу гостевухи обеспечивал написанный на Perl примитивный CGI-скрипт, позаимствованный из общедоступной коллекции бесплатного софта. Запрещать отправку содержимого формы отдельным пользователям он не умел, максимум, на что был способен, — зафиксировать дату и время публикации каждого сообщения. Этим скромным набором и ограничивалась вся исходная информация.

Кирилл подключился к серверу провайдера по FTP и открыл файл апачевского журнала access.log. Файл оказался здоровенным, и на то, чтобы найти точные соответствия между моментами появления нецензурных посланий в гостевой книге и вызова CGI-скрипта, ушло немало времени. Но оно не пропало впустую — вскоре Кирилл собрал целую коллекцию строк, описывавших интересующие его события. Все они содержали одну и ту же запись: "GET/cgi-bin/woguest.cgi?act=add HTTP/1 1 200", свидетельствующую о том, что отправка очередного сообщения завершилась успехом. Однако самое любопытное обнаружилось в конце — "http://bluescreen.plink.spb.ru/cgi-bin/woguest.cgi" "Mozilla/4.0 (compatible: MSIE 6.0: Windows NT 5.0)".

Ну, уже хоть что-то. Во-первых, хулиган всегда заходил на сайт клуба с одного и того же IP-адреса, во-вторых, пользовался он браузером Internet Explorer 6.0 на компе с Windows 2000, а часовой пояс у него настроен московский. Кирилл пробежался по соседним запросам: вот неизвестный открыл страницу гостевой книги, вот отправил форму, а затем перешёл на страничку с результатами, любуясь содеянным. Сравнив User-Agent в этих записях, Кирилл убедился, что перед ним один и тот же пользователь.

Интересно, а кому принадлежит этот айпишник? Он открыл терминал, набрал на клавиатуре команды whois и dig -x IP +short, пробежался глазами по выводу консоли. Среди вороха прочих данных база RIPE выдала запись: «LENTRANSMASH-SPB Network». На всякий случай Кирилл пинганул адрес — тот откликнулся, значит, машина жива.

Поискав в сети, Кирилл быстро нашёл этот самый «Лен­трансмаш» — большое научно-производственное объеди­не­ние на южной окраине города. Видимо, безобразник пользо­вался папиной служебной персоналкой за неимением домашнего компьютера: об этом говорило и то, что все сообщения отправлялись строго в рабочее время, до восемнадцати нуль-нуль, и к тому же после трёх пополудни, когда заканчивались занятия в школе. Да и двухтысячная винда намекала: это определённо конторский комп, обитающий в пыльном кабинете какого-нибудь замшелого госпредприятия.

Рассчитывая хоть на какой-то полезный улов, Кирилл забил ник iV1rus в «Гугле», «Рамблере» и «Яндексе». Удача оказалась на его стороне: поисковики выдали не только ICQ UIN, принадлежащий пользователю по имени Ivan Zarubin, но в дополнение к нему — кучу постов этого юзера на форумах overclockers.ru, gametech.ru и cyberforum.ru. На аватарке «Ки­бер­форума» Кирилл узнал давешнего любителя пива, которого выгнал накануне из компьютерного клуба, а в профиле обнаружил адрес электронной почты. Он побродил по выдаче «Гугла» ещё немного. В ответ на следующий запрос из недр поисковой системы выплыло имя и настоящего владельца персоналки: Владимир Зарубин, главный инженер «Лентрансмаша». Усмехнувшись, Кирилл запустил почтовик и, поглядывая на мигающий курсор, начал набирать строчку за строчкой:

To: Ivan Zarubin

From: admin@bluescreen.plink.spb.ru

Subject: Покайся, ибо грядёт!

Здравствуй, Ванюша.

Да-да, именно ты.

Мне понравились твои шутки в гостевой книге на хоумпаге bluescreen.plink.spb.ru. Правда, IP, с которого ты туда писал, ведет в «Лентрансмаш», в кабинет главного инженера — твоего отца, Владимира Зарубина. Я знаю, что ты учишься в школе на Братской улице, знаю твой домашний адрес, знаю, какая система стоит на компе твоего папы и как зовут твою таксу. Я мог бы зайти на этот комп и поменять заставку на твое фото в розовом купальнике, отправить лог твоих подвигов директору школы и на почту отца или просто хакнуть твой аккаунт на Cyberforum и подписать все твои посты: «Я люблю Барби» (кстати, пароль там у тебя не самый надежный). Но я добрый :). Поэтому у тебя есть ровно сутки, чтобы:

1. Извиниться в гостевой.

2. Написать, что Админ крут.

Иначе я запущу операцию «Папа в ярости».

Выбор за тобой, iV1rus.

Kicks, тот-кто-всегда-в-сети.

Перечитав с улыбкой написанное, Кирилл нажал на кнопку, отправляя письмо адресату. Осталось подкрепить свои угрозы чем-то чуть более действенным, нежели простые слова. Поскольку веб-страницы гостевой книги создавались при вызове CGI-скрипта автоматически, Кирилл добавил в код пару строк, которые в момент обращения к этому скрипту проверяли IP-адрес посетителя и заносили его в переменную $ip. На всякий случай Кирилл решил получить и реальный адрес пользователя с помощью параметра HTTP_X_FORWARDED_FOR — вдруг тот всё-таки знает, что такое прокси. Конечно, первый адрес в цепочке не всегда гарантированно настоящий клиентский IP — заголовки можно и подделать, но на такое наш Ванюша вряд ли способен. Это значение Кирилл поместил в переменную $real_ip. Если любой из полученных IP-адресов совпадал с айпишником лентрансмашевского компьютера, забитого в переменную $lamer_ip, вступала в действие вторая часть программы.

Кирилл знал: одно из наиболее слабых мест Internet Explorer версии 6 заключается в том, что при большом числе обращений к удалённым узлам браузер получает множество HTTP-ответов, а из-за особенностей управления окнами и памятью это приводит к зависанию программы. Если с помощью цикла попытаться открыть на машине Вани Зарубина примерно сто тысяч окон Internet Explorer, браузер попросту рухнет под собственной тяжестью. Крутилась бы на его машине Windows 98 или Millennium, «Эксплорер» похоронил бы операционную систему под своими руинами, но двухтысячная, пожалуй, выдержит. Ко всему прочему, с использованием нескольких простых команд JavaScript эти окна можно открывать в полноэкранном режиме, предварительно убрав из интерфейса браузера все средства управления, из-за чего закрыть их будет не так-то просто…

Примитивно, конечно, но придумывать более изощрённую подлянку Кириллу было сейчас лень. С какой бы целью Ваня ни зашёл теперь в гостевую — написать очередную гадость или всё-таки извиниться, его будет ждать очень неприятный сюрприз…

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

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

— Добрый вечер, Кирилл!

Сосед из квартиры напротив, приметный старик с пышной седой шевелюрой, вышел на свой традиционный променад до мусоропровода в синих тренировочных штанах и с пластмассовым ведром в руках.

— Здравствуйте, — вежливо кивнул Кирилл.

— Борис Семёнович, — представился сосед. — Ты извини, пожалуйста, что я так беззастенчиво тебя задерживаю, но вот хотел с одной небольшой просьбой обратиться. Можно?

Кирилл подтолкнул непослушную дверь коленом, и замок наконец закрылся.

— Пожалуйста.

— У меня тут с компьютером что-то случилось. Не то вирус какой подцепил, не то сломалось чего. А мне без компьютера никак, я через него и с дочкой общаюсь, и внука увидеть могу, не на коленках покачать, ну хоть так. Посмотришь, когда свободная минутка появится?

— Конечно, — пожал плечами Кирилл.

— Вот спасибо! — расплылся в улыбке Борис Семёнович. — Я, знаешь ли, ещё шахматы очень люблю. Раньше ведь как было: хочешь с кем-то в шахматы сразиться, можно по пе­реписке партию организовать. Пишешь свой ход на бумаге и отправляешь письмом. Так письмо-то долго идёт, а потом ждёшь ответа ещё месяц, оттого партия, бывает, и на год растягивается. А сейчас всё проще стало: зашёл в интернет и выбирай себе соперника по силам, хоть из Владивостока, хоть из Америки… Ты сам-то в шахматы играешь?

— Не доводилось.

— А я тебя научу, коли захочешь. Только сначала нужно компьютер починить.

«Почему бы и не помочь старику? — подумал про себя Кирилл, — тем более это отличный повод наладить отношения с живущим напротив пенсионером, к которому можно будет потом обратиться, случись такая нужда. Вряд ли там с компом что-то серьёзное…»

И вдруг замер на месте.

А ведь он никогда раньше не называл соседу своего имени. И тем более не говорил, что каким-то образом связан с компьютерами.

Глава 4. Криптодед

— Как тебя зовут, я в квитанции подсмотрел, — хитро прищурившись, пояснил Борис Семёнович, — у тебя же почтовый ящик не запирается. А ещё слышал на днях, когда на лавке у парадной сидел, как пацаны с соседнего дома обсуждали, что ты в местном компьютерном клубе работаешь. Ты как раз мимо проходил, они тебя и узнали. Ну так что, зайдёшь?

— Зайду, — кивнул Кирилл, — можно даже прямо сегодня, если не поздно. Поесть вот только куплю.

— Добро, — с довольным видом кивнул Борис Семёнович, — тогда я дверь закрывать не буду.

«Надо же, — подумал Кирилл, спускаясь по лестнице, — этот сосед прямо Штирлиц какой-то. И имя узнал, и место работы выяснил, и сделал далеко идущие выводы. Интересный дед, ничего не скажешь. Надо бы на всякий случай приглядеться к нему получше».

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

— Проходи сюда, — донёсся из глубины квартиры голос Бориса Семёновича, — дверь захлопни просто.

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

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

тихим, но настойчивым тиканьем часы с бронзовым маятником. Все вещи вроде бы регулярно используются, но в то же время лежат так аккуратно, словно каждая имеет своё строго отведённое место и любое нарушение этого порядка сразу бросилось бы в глаза. Более-менее современным выглядел разве что компьютер на письменном столе, да и тот — с пузатым электронно-лучевым монитором и массивной клавиатурой, пластик которой приобрёл от времени благородный оттенок слоновой кости.

— Ну что, сосед, — сказал хозяин негромко, — проходи, не стесняйся. У меня тут не музей, хотя, наверное, похоже.

Кирилл скользнул взглядом по книжной полке, где выстроились ровными рядами разноцветные корешки ещё советских изданий: высшая математика, справочники по статистике и теории вероятностей, основы математического анализа… Интересно, кем старик был в прошлом? Преподавателем? Научным сотрудником в каком-нибудь НИИ?

— Вот, взгляни, какая беда приключилась, — посетовал Борис Семёнович, с кряхтением уступая своему гостю место за письменным столом. — Я тут решил свои воспоминания записывать, думаю, может, внуку интересно будет почитать. На днях собрался посмотреть файлы со старыми заметками, а они не открываются…

Такого Кирилл раньше не видел. На соседском компьютере действительно порезвился троян, но понять, какой именно, с ходу не получилось. Кирилл ожидал обнаружить что-нибудь вроде привычного винлокера, однако эта программа действовала совершенно иначе. Содержимое вордовских файлов, на которые указал Борис Семёнович, превратилось в неаппетитную на вид кашу: ни заголовков, ни знакомых структур, ни сохранённых данных о форматировании. Покопавшись на диске, Кирилл обнаружил, что в точности такая же участь постигла таблицы Excel, ZIP-архивы, картинки и даже текстовые файлы. За исключением сиротливо лежащего в корне диска файлика Readme.txt, в котором отыскалась короткая инструкция: "Some files are coded by RSA method. To buy decoder mail with subject: REPLY", а дальше виднелся адрес электронной почты в домене mail.ru. Похоже, троян аккуратно зашифровал все файлы на жёстком диске, не тронув программы и компоненты операционной системы, чтобы не нарушить ненароком работоспособность машины. Если написать по этому адресу, догадался Кирилл, злодеи потребуют денег, пообещав вернуть побитые шифром файлы. И не факт, что пришлют потом «лекарство». А если пришлют, вполне возможно, оно и не сработает…

Ради интереса он прокрутил на экране содержимое нескольких документов, пытаясь на глаз оценить закономерности в потоке разномастных символов. Если бы троян просто поксорил содержимое файлов, их можно было бы восстановить относительно легко, однако здесь, похоже, дела обстояли куда серьёзнее. Байты не повторялись отдельными блоками и не обладали характерными признаками XOR’а или какого-нибудь банального шифра подстановки, скорее это выглядело как результат настоящего асимметричного шифрования: хаотично, равномерно, без явной узнаваемой структуры.

— Ну чего там? — завозился у него над ухом Борис Семёнович.

От старика пахло каким-то ванильным кремом для бритья и немного табачным дымом.

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

— Вот как? — крякнул Борис Семёнович и с досадой почесал в затылке.

— Смотрите, — пустился в пояснения Кирилл, — вот у вас есть замок. Но ключа от него два. Один, ну как обычный ключ, закрывает и открывает. А второй… второй — только закрывает. Понимаете?

Сосед нахмурился, но слушал молча, не перебивая.

— Ну то есть… — Кирилл махнул рукой, подбирая слова, — допустим, у вас есть почтовый ящик. Ключ от него только у вас, а у остальных — нет. Но если кто-то хочет вам что-то отправить, он может просто кинуть письмо через щель. Так вот RSA примерно так и работает: есть «щель» — это открытый ключ. Все могут ею воспользоваться. Но достать письмо обратно, прочитать его — может только хозяин ящика, у которого есть закрытый ключ.

— М-м-м, — протянул Борис Семёнович, и Кирилл оживился:

— И чтобы совсем просто: возьмём два огромных числа, перемножим — это быстро. А вот обратно разделить, догадаться, какие именно числа у нас были изначально, — уже гораздо сложнее, так ведь? Вот на этом и держится шифр.

Борис Семёнович кивнул, прищурился и вдруг спросил тихо:

— Длина ключа-то какая?

Кирилл задумался, не сразу уловив подвох.

— Ну-у… — протянул он, — там обычно… ну, зависит от…

— Если ключ среднесиловой, длиной 56 бит, то прямым перебором его можно найти…

Борис Семёнович закатил глаза и зашевелил губами:

— Два да в пятьдесят шестой степени… С учетом комбинаторной сложности… Возьмём десяток миллионов операций в секунду… Да за пару дней можно подобрать, пожалуй. А вот если там 67 бит, то это аж в два в одиннадцатой степени раза сложнее. Каждый лишний бит удваивает количество вариантов. Это уже ключик с усиленной криптографической стойкостью получается, тут за десяток лет не справиться…

Кирилл слегка опешил от услышанного.

— Вы… откуда это знаете?

Сосед усмехнулся.

— Занимался криптографией на службе. С начала шестидесятых ещё. До того, как такие штуки стали называться «асимметричными алгоритмами» в широких кругах. Работа интересная была, конечно, только вот рассказывать о ней запрещалось…

Он махнул рукой, как будто отгоняя старые воспоминания. Кирилл сидел, не зная, что ответить.

— А ты хорошо объяснил, — мягко улыбнулся Борис Семёнович, — доходчиво, любой школьник бы понял. Сразу видно, толковый парень, не зря я тебя позвал.

— Ну… — задумчиво протянул Кирилл, — даже если там 64-битный ключ, брутить, то есть перебирать его по словарю, совсем не обязательно…

Борис Семёнович заинтересованно поднял бровь.

— Я имею в виду, что если нам удастся найти на вашем компьютере саму вредоносную программу и хорошенько ее изучить, то в ней вполне могут отыскаться ошибки и изъяны. Может, она комбинирует ключ на основе текущей даты или серий­ного номера оборудования… Тогда подобрать его будет намного проще.

— Справишься?

— Попробую.

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

День в «Синем экране» выдался на удивление спокойным: в зале было занято только три компьютера, а посетители вели себя тихо и порядок не нарушали. Кирилл уже почти поверил в то, что смена выдастся лёгкой и у него получится заняться собственными делами, например разобраться с доставшимся от Криптодеда трояном. Однако чуда всё-таки не случилось: дверь со скрипом распахнулась, и на пороге нарисовался Ваня Зарубин собственной персоной, в вытянутой кожаной куртке и порванных на коленях джинсах. Ну, хоть без пива, и это уже можно было записать в плюс.

— Э… здорова, — протянул он, настороженно оглядываясь по сторонам.

Кирилл молча поднял глаза.

— Я это… Хотел на сайт зайти, ну, чтобы извиниться в гостевухе, туда-сюда…

— И что? Заблудился по дороге?

— Не, там, короче, стали какие-то окна открываться, и всё зависло на хрен, я психанул, пришлось машину перезагружать… Я потом ещё попробовал…

— Всего один раз попробовал? — едва сдерживая смех, уточнил Кирилл.

— Да раза три… В общем, я решил сам прийти.

Паренёк помялся, не зная, куда девать руки, затравленно оглянулся и продолжил:

— Ты это, извини, короче. Я же не знал… Админ крут, и всё такое. Не, ну ты реально крут, без базара. Слушай, а как ты вычислил, что я с батиного компа в сеть выхожу? Ну, и школу там, домашний адрес?

— Много будешь знать — скоро состаришься.

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

— А ты чё, реально хакер? — не унимался Зарубин, придвинувшись поближе.

— Реальней некуда.

— Настоящий?

— Игрушечный, блин. Тебе чего надо-то? Извинился — молодец, теперь вали отсюда и не греши, тогда папа не узнает, чем ты занимаешься на его компе после уроков.

— Так это… — Парень безропотно проглотил обидное предложение свалить и снова замялся, с трудом подбирая слова. Наконец, набравшись смелости, выпалил:

— Возьми меня в падаваны!

— Чего?

Кирилл, конечно, был знаком с терминологией из лукасовской киновселенной, но просьба прозвучала настолько неожиданно, что он слегка опешил. Парень произнёс это так, будто и вправду собрался вступить в тайный клуб джедаев. Кирилл закатил глаза и повернулся к экрану.

— Слушай, иди лучше в школу учись. А поддавать у тебя и без меня нормально получается.

В зале кто-то прыснул от смеха, уловив последние слова.

— Не, Кикс, я серьёзно говорю, — подросток шагнул ближе, упёрся руками в стойку и, наклонившись вперёд, понизил голос, чтобы его не могли расслышать посетители:

— Я толковый! Могу ночами сидеть, всё делать, что скажешь, я у бати на работе сторожа знаю, меня пропустят.

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

— Сказал же: не надо мне учеников.

— А вот ники для хакеров кто придумывает? — не унимался подросток, и в его глазах зажёгся тот самый огонёк упрямства, который Кирилл уже видел в зеркале лет пять назад. — Ну, их на хакерских тусовках выдают или как? Вот если бы я был твоим падаваном, ты какой ник посоветовал бы мне взять?

— Вантуз, — стараясь сохранять серьёзное выражение лица, ответил Кирилл, и в зале раздался уже откровенный хохот, — ты же Ваня, значит, будешь Вантузом. Годится?

— Не, ну ты чё, в натуре… — обиженно протянул Иван, — мне вот «айвирус», с единичкой вместо «и», больше нравится…

— Ник ещё заслужить надо, — с важным видом произнёс Кирилл. — Всё, исчезни в туман, не зли меня. Я, когда злой, за себя не отвечаю.

— Ладно, — отступил к дверям Ваня-Вантуз, — но я это… ещё вернусь, короче.

Поднявшись по ступеням, он растворился в морозном мареве.

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

Кирилл по привычке отщёлкивал ссылки дальше: «Античат», «h@ckingnet», пара площадок, где тусовались чуваки, делившиеся друг с другом дампами памяти и скриптами… И вдруг взгляд зацепился за необычный ник в одном из свежих топиков: WWWедьма. Разговор шёл не о троянах: обсуждали производителей антивирусов, начавших шлёпать сигнатуры не на сами вредоносные программы, а на популярные у их авторов упаковщики, из-за чего под детект автоматически попала куча полезного хакерского софта. Возмущённая WWWедьма писала, что вирусных аналитиков, судя по всему, подбирают по одному характерному анатомическому признаку — доширак вместо мозгов.

И эту фразочку Кирилл слышал очень много раз.

Стараясь справиться с волнением, он открыл форумный профайл WWWедьмы — никаких контактных данных, ни адреса электронной почты, ни номера аськи. Хотя какая-то почта, конечно же, всё-таки хранится в базе, ведь движок форума должен куда-то отправлять регистрационную информацию и служебные оповещения. Щёлкнув на ссылке в профиле, Кирилл вывел все оставленные WWWедьмой сообщения и почувствовал, что интуиция его не подвела. Внизу чуть ли не половины своих постов WWWедьма оставляла «(с)», не ради авторских прав, а скорее ради прикола. Эта привычка тоже была ему очень хорошо знакома — реплику «Кирюха тормоз (с)» он часто видел в пе­реписке и СМС. А вот в одной из веток WWWедьма упомянула «Терминус» — старый IRC-сервер, слишком малонаселённый, чтобы случайная девчонка из сети могла так невзначай о нём вспомнить. Там они частенько зависали ночами в те времена, когда…

Кирилл откинулся на спинку кресла. Под ником WWWедьма скрывалась Трикси, теперь он был уверен в этом на все сто процентов.

Сердце неприятно ухнуло вниз: будто прошлое, которое он уже аккуратно сложил в коробку и задвинул на верхнюю полку памяти, внезапно спрыгнуло оттуда и вылезло обратно в реальность. Незнакомый ник, чужие обсуждения — и такие до боли знакомые интонации. Она почти не изменилась: всё та же едкая манера спорить, всё та же легкая насмешка над собой. Кирилл провёл пальцами по клавиатуре, будто колебался: написать в личку? Но что сказать? «Привет, это я»? Трикси не ответит или, как это уже было раньше, снова исчезнет в никуда.

Он ещё раз перечитал пару её сообщений. За бегущими по экрану фразами сквозило то, что Трикси, похоже, никуда не делась из сетевой тусовки — наоборот, чувствовала себя здесь как рыба в воде. Упоминала свежие эксплоиты, спорила с какими-то ребятами об анализе трафика, обменивалась ссылками — и делала это с азартом.

А значит, ещё не все потеряно.

Кирилл поймал себя на том, что уголки его губ предательски растянулись в улыбке.

Глава 5. WWWедьма

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

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

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

На хосте жило целых три домена, но два из них не резолвилось, а третий, как раз и принадлежавший форуму, имел поддомен с говорящим именем admin. Кирилл заглянул по этому адресу — стандартная форма авторизации, скучная до зубовного скрежета. Белая страница, поля для ввода логина и пароля, кнопка Submit. На всякий случай он вдумчиво просмотрел HTML-код: тоже ничего интересного, никаких скрытых параметров форма на сервер не передавала, а вводимые в неё значения аккуратно фильтровались. Шутки ради Кирилл набрал на клавиатуре admin/admin, полюбовался на ожидаемое Invalid Username or Password и закрыл окошко. Здесь определённо тупик.

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

Наткнувшись на один из постов WWWедьмы с аватаркой в виде высунувшего язык озорного котёнка, Кирилл щелкнул мышью на картинке. Котёнок показал язык уже во весь экран, в отдельном окошке без каких-либо элементов навигации, кроме стандартных кнопок «закрыть-свернуть», и он невольно усмехнулся. Правой кнопкой мыши Киря открыл картинку в новом окне и взглянул на адрес. После домена значился скрипт, которому в параметре передавался внутренний номер пользователя: showpic.php?id=2082. Он машинально приписал к адресу одинокую кавычку, будто кинул камешек в колодец — и теперь ждал, донесётся ли в ответ эхо.

По экрану промелькнули строчки:

Warning: mysql_fetch_array(): supplied

argument is not a valid MySQL

result resource

in /home/www/mboard/public_html/showpic.php on line 72

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

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

Теперь предстояло подобрать имена полей. Стандартные user, password и email не подошли, и Кирилл начал перебирать варианты с различными префиксами и окончаниями. Наконец удача улыбнулась ему. Поля, отвечающие за пароли и почту, носили имена member_mail и member_password, только для имени учётной записи использовалось совсем непохожее на них username. Этих сведений уже оказалось достаточно, чтобы извлечь из базы самое ценное.

Он аккуратно составил SQL-запрос, объединяя нужные поля в одну строку, чтобы не пришлось прыгать по таблице, как тому котёнку по крыше, а все важные сведения выплыли вместе и не потерялись в хаосе. Enter. Экран ожил и выплюнул адрес электронной почты админа, сопровождающийся длинной последовательностью латинских символов и цифр. Кирилл вполголоса выругался: пароль оказался зашифрован с помощью MD5. Не смертельно, конечно, но радость от первого успеха куда-то испарилась. Дверь в чужой дом чуть приоткрылась, однако само здание всё ещё оставалось неприступным.

Первое, что пришло на ум, — тот самый канадский дедик, который он уже использовал для взлома пароля от икс-байтовского вайфая. Кирилл быстро подключился к серверу, привычно проверил скорость отклика и с облегчением выдохнул: всё работало. Инструмент был надёжным, как автомат Калашникова, разве что подбор пароля по хешу может занять немалое время. Что ж, пускай заокеанская машина трудится, а он тем временем может заняться чем-нибудь другим.

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

Поймав ногами разбежавшиеся под столом тапки, он вышел в прихожую. Глазка в старой двери не имелось, надо бы врезать на всякий случай… Приложив ухо к двери, Кирилл прислушался. Сначала показалось, что лестничная клетка пуста, — сквозь щель, из которой отчетливо тянуло холодом, доносился только слабый шум машин и далёкий лай собаки, но потом послышалось шуршание и чье-то приглушённое дыхание.

— Кто? — громко спросил он.

— Кирюх, открывай, — нетерпеливо ответили с той стороны.

Кирилл провернул замок, и в квартиру ввалилась сутулая фигура в куртке-дутике, замерла, с интересом оглядывая окружающую действительность сквозь толстые стёкла очков.

— Сорян, что так поздно, — пробормотал нежданный визитёр, расстегивая куртку, — фух, душно тут у тебя. Ты бы проветрил, что ли?

— Здорово, Серёга, — поприветствовал совладельца «Синего экрана» Кирилл.

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

Серёга неловко потоптался, пристраивая куртку на вешалке. Было видно: пришёл он не ради дружеской беседы.

— Слушай… у нас, короче, фигня. — Сергей понизил голос, будто боялся, что даже облупленные стены со старыми обоями могут донести его слова куда не надо. — Вчера вечером в клуб типы заходили, но не играть. Такие, знаешь, характерные, бошки бритые, морды квадратные. Пытались вызнать, кто у нас самый главный, сколько платим за аренду, сколько за коммуналку, высматривали и вынюхивали всё вокруг.

Кирилл нахмурился:

— Крышу, что ли, предлагали?

— Я тоже так подумал, — кивнул Сергей, — но не угадал. Они помаячили, в сортир заглянули и свалили, но пообещали скоро вернуться. С Тамарой.

— Это кто такая?

— Да тётка из районной управы, которая нам подвал сдаёт. Я ей позвонил сразу, спросил, мол, что за фигня происходит? Она немного помялась для виду, а потом выдала, что у неё эти качки тоже недавно были. Хотят в нашем помещении секонд-хенд открыть, «Вещи рядом» называется. И склад барахла с Апрашки, которым они торгуют. Вроде как денег предложили побольше, чем мы платим. Чую, выгонят нас с насиженного места, Кирюх.

«Интересно, почему с этими новостями Серёга побежал прямо ко мне, а не к своему бизнес-партнёру?» — подумал Кирилл, а вслух сказал:

— Ну, а Влад что говорит?

Сергей скривился так, будто надкусил кислое яблоко:

— А что он скажет? Я ему звоню, объясняю ситуёвину, а он: «Да ладно, Серёг, не парься, другое место найдём». Понял? Ему по фигу. Не хочет он свои нервы тратить, у него постоянная работа есть, где зарплату платят. А я там своими руками сеть тянул, стены красил, хлам пополам с крысиным дерьмом на помойку носил. Я в клубе каждый день с утра до ночи сидел, с этими придурками у компов, с мамашами их припадочными, которые приходят скандалить, что сын у нас просадил всю стипуху. Я живу этим клубом, Кирюх. А эти мордовороты заходят, глазами сверлят, будто они тут уже всё давно купили.

Кирилл молча кивнул. Серёга, конечно, прав: клуб для парня стал чем-то вроде второго дома, где тот буквально жил и пахал без выходных — по крайней мере, до его прихода. Влад же, похоже, относился к «Синему экрану» как к развлечению: работает — хорошо, закроется — невелика потеря. Компы, в конце концов, и продать можно. Да и для самого Кирилла «Экран» с каждым днем становился всё более родным, потому потерять клуб было бы обидно до слёз. С другой стороны, подвал с парой десятков старых системников и школота у мониторов — стоит ли ради этого вписываться в назревающую разборку? И что они смогут сделать с потенциальными арендаторами? Перебить цену вряд ли получится, заведение и так едва сводит концы с концами.

— Чай будешь? — предложил Кирилл, жестом приглашая гостя на кухню.

— Я бы чего покрепче хряпнул, — признался Серёга, — а пожрать случайно нету?

— Сейчас яичницу с колбасой сварганим, — пообещал Кирилл.

Пока Кирилл возился на кухне, Серёга расселся на табурете, прислонившись к стене и закинув руки за голову.

— Знаешь, — сказал он после паузы, — я всё думаю: а если эти отморозки реально с Тамарой договорятся? Ну, выкинут нас. И чё? Я, значит, как лох, вкалывал, а они придут, всё сметут и «Вещи рядом» откроют.

— У тебя ж руки есть, башка тоже, — отозвался Кирилл, помешивая яичницу. — Ну, не этот клуб, так другой замутишь.

— Не в клубе дело, — Серёга резко выпрямил спину. — Понимаешь, Кирюх, тут же не просто место. Тут движуха, свои люди. Я как-то к этому прикипел. Ну, придёшь ты завтра — а там секонд-хенд. Прикинь: вместо наших матерящихся школяров и сигаретного дыма — тётки с мешками тряпья и эти…

Кирилл представил себе нарисованную Серёгой картину и помрачнел. Вместо ответа он поставил сковородку на стол, достал две вилки — тарелки мыть было лень — и плеснул кипятку из чайника в фарфоровые кружки, где уже дожидались своего часа чайные пакетики.

Серёга прожевал кусок колбасы, вытер рот ладонью и зло усмехнулся:

— Знаешь, что самое паршивое? Эти морды ведь не просто помещение у нас отжимают. Они щупают, кто с ними бодаться рискнёт, а кто хвост подожмёт. И если мы сольёмся — всё, дальше нас по району будут, как стадо, гонять. Откроемся где-нибудь ещё, нас и оттуда выпнут через пару месяцев, чего с нами церемониться?

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

— Ладно, — сказал он наконец, — что-нибудь придумаем. Но в открытую лучше не лезть, не те у нас с тобой ресурсы.

Серёга оживился, кивнул:

— Вот! Я тоже думаю, что Тамара, может, и рада сдать подвал за большие деньги, но видно же, что ей стрёмно. Надо с ней поговорить. Только аккуратно.

Кирилл отпил чаю, покосился в окно, где в жёлтом свете фонаря медленно падал снег.

— Аккуратно — это по-нашему. Поговорим.

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

— Слышь, Серёг, — сказал он, когда они доели. — Давай завтра ещё обсудим. Сейчас мозги отупели, я после работы выжат совершенно.

— Да, я тоже убитый, — вздохнул тот, с сожалением глянув на пустую сковородку. — Ладно, пойду. А ты подумай, чего делать будем.

Кирилл проводил его до двери, щёлкнул замком и ещё пару секунд стоял, прислушиваясь к затихающим шагам в подъезде. Потом облегчённо выдохнул.

Дедик справился со своей работой ближе к утру. Спать уже не хотелось: залогинившись в админку, Кирилл отправился прямиком в раздел «Пользователи» и с замиранием сердца ввёл в поле для поиска короткую строчку. Спустя мгновение он нашел то, что искал: юзер под номером 2082, ник — WWWедьма, имя — AllA… А вот и адрес электронной почты. Запустив почтовик, Кирилл набросал короткое письмо и, чуть помедлив, отправил.

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

Изнанка форума выглядела так, словно её писал скучающий студент-программист, пожелавший собрать воедино всё лучшее, что он когда-либо видел в других похожих проектах. «Отчёты», «Настройки», «Плагины» — каждый раздел содержал в себе ещё несколько пунктов.

Добравшись до «Инструментов», Кирилл наткнулся на редактор кода, что позволял открыть все составляющие форум скрипты и даже конфиги. Сюда можно было запросто залить веб-шелл, но вместо этого Кирилл выбрал в меню functions.php и занялся тем, что сделал бы на его месте далеко не всякий хакер. Какой толк ломать дверь, если она и так держится на одной ржавой петле? Захочет кто-то ещё — зайдет. А это значит, что уютный форум может внезапно превратиться в проходной двор. Он отыскал тот самый участок кода, где обработчик URL выглядел как издевательский анекдот.

— Господи, да это же учебник «Как нас ломать для чайников» в одной строчке, — покачал головой Кирилл. — Не код, а предсмертная записка.

Он ненадолго задумался и быстро поправил скрипт, пофиксив место, допускавшее SQL-инъекцию. Сохранил, проверил. Функции скрипта оставались теми же, но дырка захлопнулась, будто в подъезде поставили новый домофон и впервые за год сменили код. Система будто вздохнула облегчённо.

— Ну вот, теперь хотя бы не так стыдно. — Кирилл удовлетворённо откинулся на спинку кресла.

Он ещё немного полистал скрипты, заметил парочку мелких нелепостей — вроде формы обратной связи, не проверявшей вводимые юзером адреса, — и тоже поправил.

За окном начало светать, утро неохотно заползало в комнату, и Кирилл уже собрался отправиться на боковую, когда в динамиках тихо блямкнуло — в почтовый ящик упало письмо. Затаив дыхание, он развернул сообщение.

«Как ты меня нашёл?»

Подписи не было, но она и не требовалась: он знал, что это написала Алла.

Глава 6. Вещи рядом

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

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

Вымученное короткое письмо отправилось адресату. Ответ не заставил себя долго ждать, словно прямо перед носом захлопнулись двери уходящей в ночь последней электрички:

«Зачем ты написал? Мы уже обо всем поговорили и всё решили. Ничего не изменилось, и возвращаться к этому я не хочу».

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

«Я знаю, что мы всё решили. И я не жду возвращения прошлого. У нас остался один незакрытый вопрос, который не даёт мне покоя. Я не хочу уговаривать тебя, но мне важно знать, что с тобой всё в порядке и ты счастлива. Поверь, для меня это очень важно».

На этот раз ответа пришлось ждать долго.

«У нас не осталось незакрытых вопросов. То, что тебя беспокоит, оказалось проблемами со здоровьем, и это в прошлом. Сейчас всё в порядке. Я счастлива. Пожалуйста, не пиши мне больше».

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

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

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

Троян был написан на Delphi. Его авторы даже не пытались усложнить код, чем порой грешили некоторые их коллеги, превращавшие внутреннюю логику вредоносной программы в паутину перекрёстных вызовов, распутать которую получалось далеко не всегда.

Перед началом работы энкодер сканировал диски заражённого компьютера, составлял список шифруемых файлов и только потом приступал к своей зловещей деятельности. Генерировал пароль, который сохранял в системный реестр на случай, если жертва спохватится и перезагрузит или выключит машину, — чтобы при следующем её запуске начать процесс заново. Как только дело было сделано, пароль удалялся, а заодно с ним удалялись и резервные копии файлов вместе с системными точками восстановления. Теперь вернуть утраченное становилось невозможно, не заплатив злодеям выкуп. По крайней мере, так всё выглядело на первый взгляд. И это было бы правдой, если бы не одно «но».

Хорошенько изучив отвечавший за параметры шифрования фрагмент кода, Кирилл откинулся в кресле и прищурился. Пароль формировался на основе серийного номера жёсткого диска и текущей даты, преобразованной в Unix timestamp — количество секунд, прошедших с 1 января 1970 года. А значит, его можно подобрать. Нужно только правильно выбрать условия перебора.

Он потянулся к телефону и набрал записанный в памяти номер.

— Доброе утро, Борис Семёнович, — произнёс он, когда на том конце сняли трубку. — Не разбудил?

— Что ты, Кирилл, я птичка ранняя, — хохотнул в ответ Криптодед. — Неужто придумал, как решить мою проблему?

— Почти. Я разобрался, каким способом троян шифрует файлы, и теперь нужно разработать алгоритм подбора ключа. Давайте я вам перекину всё, что накопал, а вы сообразите, как эту задачу решить. Она вроде бы по вашей части.

— А давай, — согласился Борис Семёнович, — у меня на пенсии времени много, так что займусь, поломаю голову. Всяко лучше, чем кроссворды разгадывать.

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

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

До «Синего экрана» он добрался чуть позже, чем обычно, — минут сорок ушло на приготовление завтрака из остатков тех продуктов, что удалось отыскать в холодильнике, и ещё примерно час — на решение других насущных вопросов. Кирилл отпер входную дверь, включил свет и компы, проверил работу сети. Посетителей в этот час всё равно ещё не было, они начнут подтягиваться ближе к обеду, а потому утром оставался шанс в спокойной обстановке заняться своими делами. Но только не в этот раз.

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

— Доброе утро, — произнесла дама, глядя мимо Кирилла, и сразу же переключила внимание на своего спутника: — Здесь у нас два помещения, тамбур и основной зал, есть ещё уборная, правда, бачок там неисправен. Помещение тёплое, но требует косметического ремонта. Электричество по счётчику, имеется центральное отопление…

— Здравствуйте, Тамара Эдуардовна, — поприветствовал визитёршу Кирилл, безошибочно угадав, кого занесло к нему на огонёк. — Бачок в туалете я починил. А что касается косметики, то это ж дело вкуса. Я бы сказал, что это место больше подходит тем, кто ценит атмосферу, а не идеальный глянец.

Тамара Эдуардовна уставилась на него так, словно увидела буквально только что и раньше не догадывалась о его присутствии.

— Меня зовут Кирилл, я администратор, — представился Киря. — Сергей предупреждал о вашем визите.

— Я думала, что застану здесь Владислава, — чуть поджав губы, сообщила Тамара. — Хотелось бы кое-что обсудить с ним с глазу на глаз.

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

— Ладно, это подождёт, — махнула рукой дама и повернулась к своему спутнику. — Пойдёмте посмотрим зал?

— А вы действительно хотите сдать этот подвал другим арендаторам? — склонив голову набок и изобразив на лице наивное выражение, поинтересовался Кирилл.

— Ох, мальчики, пока ещё ничего не решено, — стараясь побыстрее отделаться от настырных расспросов, бросила в ответ Тамара, — люди вот интересуются, помещение под магазин одежды ищут.

— Тогда это явно не лучший вариант, — заметил Кирилл.

— Почему? — впервые подал голос лопоухий носитель кожанки.

— Ну, во-первых, крысы. Тут водомерный узел за стенкой, оттуда и бегут, провода нам грызут регулярно. Гоняем, но без особого успеха. Попортят вам весь товар. Пойдёте зал смотреть, по углам под столы загляните, я там ловушки расставил, может, за ночь попалось чего. Во-вторых, сюда особый контингент захаживает, будет тут шастать по старой памяти, покупателей распугивать. Место-то не особо проходное.

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

Наконец посетители завершили осмотр достопримечательностей и вернулись к стойке, за которой их терпеливо дожидался Кирилл.

— Стас, — протянул ему влажную ладонь лопоухий.

Кирилл молча срифмовал его имя весьма неприличным образом, но вслух ответил, пожимая руку:

— Очень приятно. Что решили?

— Подумаем, посмотрим ещё вариантики. Но тут в целом нормально, нам всё нравится. Вернёмся к концу недели, там и будет ясно, чё как.

«Подумаем» и «вернёмся к концу недели» означали ровно одно — клуб пока держится, но время играет против них. С другой стороны, Кирилл уже примерно представлял себе, что предпримет дальше. Окончательный план ещё не созрел, но общий порядок действий был для него вполне ясен.

Стас и Тамара удалились, о чём-то переговариваясь вполголоса, а мимо них протиснулся Иван Зарубин и сразу же устремился к стойке администратора.

— Привет, Кикс! — громко поздоровался он. — Смотри, чего я на развале купил!

Кирилл с интересом повертел в руках компакт-диск, на футляре которого красовалась яркая надпись: «Всё для хакера! Софт для взлома, утилиты, полезности, вирусы!»

— Ванюш, тебе учителя в школе не говорили случайно, что по тебе тюрьма плачет? — поинтересовался он. — Так вот, у тебя есть отличный шанс утешить её своим личным присутствием.

— Да ладно, Кикс! — засмеялся Иван, — это же типа для обучения. Пощупать, посмотреть, а не на чужих компах запускать. Интересно же!

Он гордо убрал диск за пазуху, словно это был драгоценный трофей из древнего сундука с сокровищами.

— Слушай, а я к тебе по делу, — признался Зарубин, чуть понизив голос, — понимаешь, тут такая фигня приключилась. На батином компе, ну, который на работе у него стоит, какой-то вирус завёлся. Он в командировке сейчас, потому ещё не знает, но, если приедет и увидит, что у него там баннер на весь экран, мне хана. Не пустит он меня больше за компьютер. Может, посмотришь?

— На что? — хмыкнул Кирилл. — Думаешь, я порнобаннеров никогда не видел?

— Да чё ты стебёшься-то, я тебя как человека помочь прошу! — обиделся юный хакер.

— Небось, по неприличным сайтам шарился, вот и подцепил заразу, — предположил Киря. — Я тебе книжку умную принесу, в шкафу нашёл случайно, когда старое барахло разбирал. Она тебе точно поможет. Называется «Онанизм, причины и методы лечения»…

— Да иди ты на фиг, — ещё сильнее надулся Иван. — Не шаришь в вирусах, так и скажи!

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

— Хочешь, чтобы я батин комп почистил? Ну, неси сюда винт, я гляну.

— А как я его достану-то? — опешил от столь неожиданного предложения Иван.

— Каком кверху. Ты же хакер, хоть и начинающий? Тогда сообразишь, наверное, как корпус раскрутить и жёсткий диск оттуда вытащить.

— Так его ж ещё через охрану пронести надо…

— В трусах спрячешь, он небольшой. Хотя нет, в трусах не надо, мне ж его потом руками трогать. В карман положи или в рюкзак. В общем, сам придумаешь, не маленький.

Иван почесал затылок, явно представляя себе всю операцию — от проникновения в батин кабинет до торжественного выноса диска под мышкой.

— А если меня спалят? — с сомнением спросил он.

— Тогда скажешь, что несёшь диск домой, кино смотреть. Можешь объяснить, что такое кино можно только в одиночестве крутить, когда одна рука свободна…

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

Немного потолкавшись в предбаннике и перебросившись парой фраз с другими посетителями клуба, Зарубин убрался восвояси, когда телефон в кармане Кирилла дрогнул короткой вибрацией. На экране высветилось имя «Криптодед». Кирилл ответил, и из динамика раздался бодрый голос соседа:

— Ну, Кирюша, похоже, я придумал, как раскусить твою задачку. Алгоритм есть, но объяснять долго, да и не по телефону. Появилась, правда, одна загвоздочка…

— Какая, Борис Семёнович?

— Я зайду вечером, расскажу всё в подробностях. Думаю, тебе будет интересно.

Связь прервалась, оставив Кирилла со странным чувством недосказанности.

Глава 7. В стиле ретро

Борис Семёнович остановился в прихожей и огляделся.

— Ремонт бы тебе сделать, — назидательно произнёс он, — алкаш этот, Рома, квартиру жуть как запустил. Так и помер в свинарнике.

— Что, прямо тут и помер? — поинтересовался Кирилл.

— Нет, его в тот раз после очередного запоя «белка» навестила: зелёные человечки в уборной завелись и хотели беднягу для исследований на Марс забрать. Видимо, изучали влияние палёной водки на организм пьющего сантехника. Так он, от них спасаясь, в окно и вышел.

— Разбился?

— Да нет же. Какое разбился, второй этаж. В больницу увезли, переломанного. Там и умер.

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

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

— Значится, так, — прихлопнул он ладонью тетрадный разворот, — то, что ключик берётся не из воздуха, это хорошо. Идея там простая: дата как соль, серийный номер диска как персональная метка машины — склеил их, прогнал через генератор и получил ключ. Вот это первая загвоздка. Если ключ зависит от текущей даты, то вернуть файлы, зашифрованные, скажем, три недели назад, можно — но требуется знать, какое именно значение использовал троян. Не просто «март», а точное время.

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

— Дату и время можно взять из метаданных самого файла, — задумчиво произнёс Киря, — а лучше вытащить из нескольких и сравнить для надёжности.

— Со вторым значением, которое серийный номер, всё проще, — продолжил Борис Семёнович, — разве что, если хозяин компьютера сменит винчестер и перенесёт зашифрованные файлы туда, весь «персональный» фактор улетит в трубу. А вот если у тебя есть хотя бы один исходный файл — хоть сохранённая фотка, хоть шаблон письма, любой незашифрованный документ, — то алгоритм можно подручными методами проверить: подать предположительную дату, серийник и посмотреть, совпадает ли расклад. То есть нужен мостик — небольшая подсказка извне. Без неё ты будешь тыкаться вслепую и подбор ключа займёт гораздо больше времени. Это вторая загвоздка.

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

— Давайте я тогда расшифровщик набросаю, — предложил Кирилл, — сразу и проверим, как ваш алгоритм работает.

— Годится, — кивнул сосед. — А я пойду на кухню, чайник поставлю. Печенье у тебя найдётся какое-нибудь?

— Вчерашний батон только.

— Тогда я из дома сгущёнки принесу. Чего пустой чай гонять?

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

— Ваши файлы я к утру расшифрую, — пообещал Кирилл, с аппетитом откусив от ломтика политого сгущёнкой нарезного, которые Борис Семёнович аккуратно разложил на тарелочке.

— Думаю, не один я от этого вируса пострадал, — произнёс сосед, — можно и другим людям помочь.

— В принципе, можно… — Кирилл прикинул в уме, что понадобится для реализации этой затеи, и потянулся за следующим куском. — Тогда надо к программе графический интерфейс приделать, чтобы было проще. Сайт какой-нибудь можно на коленке соорудить. Да и вообще, ничто не мешает копейку за расшифровку брать — меньше, чем злодеи просят, но и чтобы не совсем даром. Подумать надо.

— Вот и подумай.

— Только расшифровщик наш именно с этой версией трояна справиться может. Если его авторы поумнеют и добавят в алгоритм настоящую случайность — скажем, вместо простой конкатенации даты и серийника станут использовать источник истинного энтропийного шума, — то весь ваш блестящий алгоритм превратится в тыкву. Ни дата, ни серийник не помогут.

— Ну да, — Борис Семёнович вздохнул, — а ещё автору трояна может не понравиться, что ты его бизнесу мешаешь.

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

— А может, бесплатно декодер выложить? — продолжил размышлять он вслух.

— Может, и так, — хмыкнул сосед, — но на всякий случай старайся лишний раз не светиться в интернете. Никаких громких рекламных объявлений, никаких больших сумм и, главное, никаких реальных имён. Чем меньше народу знает, кто именно этим занимается, тем дольше будет работать метод.

Кирилл кивнул. Он ощутил, как внутри просыпается привычный азарт — решить задачу, сделать рабочий продукт, довести его до ума. Деньги и потенциальный риск отступили на второй план.

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

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

— Мам, это ко мне, — послышался откуда-то из коридора чуть смущённый голос владельца «Синего экрана», которого Кирилл полчаса назад предупредил о своём визите телефонным звонком.

Женщина молча посторонилась, смерив гостя ещё одним подозрительным взглядом, — разговаривать она, видимо, сегодня была не в настроении.

— Здравствуйте, — кивнул ей Кирилл, переступая порог.

— На тряпочке вот тут разувайся, — засуетился подоспевший Серёга, — ботинки сразу в шкафчик убирай, у меня собака, сгрызёт. Проня, фу! Фу, я сказал! Свои! Мам, ну забери его!

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

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

— Извини, мама не любит посторонних, — словно оправдываясь, признался он.

— Понимаю, — сказал Кирилл, усаживаясь без приглашения на диван, — у меня с отчимом такая же история была. Я на самом деле по поводу клуба пришёл с тобой поговорить.

— Валяй, жги, — сразу же перешёл на деловой тон Серёга. — Есть какие-нибудь идеи?

— Скажи мне, ты знаешь, что такое ZX Spectrum? — вопросом на вопрос откликнулся Кирилл.

Сергей на мгновение задумался.

— Был вроде такой компьютер древний, — осторожно подбирая слова, произнёс он, — восьмибитный ещё, из девяностых. У бывшего одноклассника батя такие собирал когда-то, он мне показывал: посмотри, мол, каким старьём предки пользовались. А что?

— Ну вот смотри. Цену, которую эти секондхендщики Тамаре предложили, мы перебить не сможем, нет у нас лишних денег. Да и на школоте местной много не заработаешь. А вот если мы соберём у нас любителей старого железа, которые и постарше, и побогаче, да информацию об этом мероприятии по всему городу распространим, это будет уже совсем другой расклад. Во-первых, место станет известным, проходным, во-вторых, денег принесёт чуть больше, а если у нас появится постоянная тусовка серьёзных дяденек за тридцать, выгнать нас оттуда будет немного сложнее, правда? В общем, я предлагаю замутить в «Экране» фестиваль ретрогейминга.

— Со «Спектрумами»? — удивлённо хлопая глазами, переспросил Серёга.

— Со «Спектрумами», «Амигами», «Атари» и прочими «Апогеями» с «Микрошами». Мероприятие нужно небольшое, много народу в наш подвал всё равно не поместится, но громкое.

— Да кто в нашу пердь попрётся-то? — недоверчиво протянул Серёга. — Тут же окраина мира, конец цивилизации. За Ковалёво вон обитаемая вселенная вообще заканчивается, там обрыв, и жопы слонов торчат, на которых земная твердь покоится…

— Не дрейфь, Серый, попрутся, если общественность о пред­стоящем фестивале правильно проинформировать. Это я беру на себя. Кстати, у тебя знакомых журналистов слу­чайно нет?

— Журналистов?.. — Сергей, всё ещё пребывавший в некоторой растерянности от Кириного напора, взъерошил ладонью непослушную шевелюру. — Нет… Хотя подожди, я у мамы спрошу. Её сестра, тётя Рита, в какой-то газете работает.

— Серёжа! — донёсся из коридора требовательный женский голос — Ты на часы смотришь? Погуляй с Пронькой, а то он сейчас на полу наделает!

— Уже иду, мам! — крикнул Сергей и повернулся к своему гостю: — Пойдем, я собаку выведу, по дороге ещё поболтаем.

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

— Ой, чуть не забыла: представляешь, я Юру вчера видела, — сообщила напоследок мама, заставив Кирилла напрячься.

Встречи с отчимом ничем хорошим обернуться не могли. В прошлом они и вовсе заканчивались рукоприкладством, после одного из которых Кирилл всё-таки упрятал его за решётку, воспользовавшись неожиданно подвернувшейся воз­можностью.

— И что он? — настороженно поинтересовался Киря.

— Да ничего, Кирюш. По-моему, он меня даже не узнал. Я в продуктовый с тётей Таней пошла, и вдруг она говорит: смотри, это твой, кажется. Я глянула — и вправду он. Грязный весь, обросший какой-то, в помойке копается, на бомжа стал похож. Бутылку в мусоре нашёл, допил и в мешок спрятал, такой же грязный, как он сам. Посмотрел в мою сторону и отвернулся. Я быстрей-быстрей идти оттуда, пока он меня не окликнул…

— Ну и хорошо, что не окликнул, — выдохнул с облегчением Кирилл.

В том, что отчим рано или поздно закончит свои дни в помойке, он ничуть не сомневался, главное, чтобы перестал портить жизнь окружающим.

Хлопнула дверь, и в клуб ввалился довольный собою Ваня Зарубин.

— Принёс! — торжественно объявил он с порога.

— Чего принёс? — переспросил занятый своими мыслями Кирилл, а потом вспомнил, о чём они разговаривали в прошлый раз.

— Винчестер принёс, — Иван с гулким стуком выложил на стойку жёсткий диск. — Блин, чуть не спалили. Но я выкрутился. Только его назад надо вернуть поскорее, пока не хва­тились.

Внешнего корпуса для винчестеров с USB-интерфейсом у Кирилла не имелось, поэтому он водрузил на стол запасной системник с открученной боковой крышкой, подцепил к материнской плате шлейфом принесённый Иваном диск и врубил питание.

Вредоноса он обнаружил довольно быстро — он лежал в папке System32, не особо скрываясь. Поменяв расширение на .ex_, чтобы программа случайно не запустилась, Кирилл скопировал файл на флешку, вернул винчестер законному владельцу и воткнул флешку в свой ноутбук.

Иван перегнулся через стойку, изо всех сил стараясь заглянуть в экран, и принялся сопеть Кириллу в ухо чесночным духом — видно, слопал где-то по дороге шаверму.

PEiD сообщил, что прога написана на «плюсах» и не упакована. Кирилл загрузил файл в IDA, решив посмотреть, что у него внутри. В кармане противно затренькал телефон.

— Алло? — Кирилл прижал трубку к уху, не отвлекаясь от работы.

— Кирыч, это Сергей, — услышал он радостный и бодрый голос, — тётка нам журналиста нашла, запиши-ка телефон. Его Жора зовут…

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

Это были до боли знакомые функции сохранения копии файла и блокировки системы, тот же набор вызовов API для перехвата ввода, та же хитрая схема перерисовки окна поверх всего рабочего стола, те же проверки сочетаний клавиш и таймеры. Кирилл знал этот код до мурашек, до последнего байта — он сам написал его, прежде чем запустил в локальную сеть фирмы «Икс-Байт», сидя на крыше соседнего здания.

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

В нескольких местах он увидел маркеры: broadcast_scan, replicate_copy, remote_trigger. Где то среди дизассемблированного листинга мелькали строки вроде --lock-now-- и код, который ожидал внешней команды — возможность массового включения блокировки по расписанию или по сигналу с контролирующего сервера. Да и сам адрес этого сервера не был жёстко запрограммирован, не хранился в явном или даже зашифрованном виде, он формировался динамически, по какому-то странному алгоритму, логику которого Кирилл сейчас понять не мог.

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

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

Глава 8. Алло, это Жора!

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

— Алло, это Жора! — услышал Кирилл приглушённый расстоянием хрипловатый голос. — Журналист который, из «Инфо-пресса». Ты мне вчера сообщение прислал про какой-то ретрофестиваль, было дело?

— Ага, было, — откликнулся Киря, прижав телефон к уху плечом и потирая запястьями опухшие после сна веки. — Хорошо, что вы позвонили. Мы тут в районном компьютерном клубе интересное мероприятие затеяли, хотим его вытащить на городской уровень. Ваша поддержка была бы очень кстати.

— Вот и расскажи мне про это ваше ретро, — хохотнула трубка, — силёнок-то хватит на городской уровень? Или, кроме идей, у вас и нету ничего?

С чем-то более материальным, чем идеи, пока ещё и впрямь было негусто, но Кирилл решил не раскрывать собеседнику всех карт и даже немного приврать, чтобы не упустить едва наметившийся контакт с «акулой пера».

— Мы сейчас вовсю работаем над реализацией проекта. Люди уже обещали принести свои компьютеры, будут турниры… Рассчитываем где-то на сорок — пятьдесят человек, программу как раз согласовываем с участниками…

— Так, стоп, — прервал поток его красноречия журналист, — давай лучше обсудим всё это не по телефону. Ты в центре бываешь? Вот и отлично. Подруливай сегодня часам к четырём в «Деметру» на Восстания, там и поболтаем.

Едва нажав отбой, Кирилл дополз до стола, раскрыл ноутбук и запустил «аську». Контакт с никнеймом iV1rus радовал глаз зелёным цветочком, а значит, Ваня Зарубин уже успел вернуть почищенный от троянов винчестер на место и теперь снова мучает компьютер отца, пока тот отдыхает от трудов праведных. Развернув мышкой окно чата, Кирилл набрал короткое сообщение:

«Привет, настало время платить добром за добро :) У тебя есть кто-нибудь, кто рисовать хорошо умеет? Надо по-быстрому сделать несколько флаеров и плакатов».

«Аська» помедлила с минуту и замигала жёлтым конвертиком в ответ:

«Здорово, вроде есть. А что за движуха?»

«Потом расскажу, — отстучал на клавиатуре Кирилл. — Вечером в клуб заходи и художника своего с собой притаскивай. Там все подробности узнаешь».

С наглядной агитацией вроде бы разобрались, теперь надо уговорить владельцев ретрокомпов принять участие в этой авантюре. «Что нам понадобится?» — принялся размышлять Кирилл. Чтобы тусовка выглядела хоть сколь-нибудь представительной, нужна как минимум парочка «Синклеров», по одной классической «Амиге» или «Атари», несколько советских компов, а ещё штук шесть старых телевизоров. Надо бросить клич на форумах спектрумистов, написать на городские борды. Хорошо бы засветиться в какой-нибудь «Игромании», но в такие крупные издания просто так не пробьёшься, да и согласовывать публикацию будут с полгода, а у них в лучшем случае неделя-полторы в запасе. С другой стороны, все серьёзные журналы имеют и свои собственные форумы, где может зарегистрироваться любой желающий…

Ненадолго отложив насущные дела в сторону, Кирилл посетил уборную, умылся, наспех позавтракал яичницей с кофе и взялся за сочинение постов. Особыми литературными талантами он похвастаться не мог, да и в рекламе был не слишком искушён, однако творческий процесс увлёк его не на шутку. Прочитанный пару месяцев назад роман про копирайтера-криейтора Вавилена оказался неожиданно полезен: там герой творил тексты, будто смешивал коктейли из самых неожиданных ингредиентов, и Кирилл решил взять с него пример. Он набросал несколько вариантов сообщений, тасуя слова, точно грани кубика Рубика: «Внимание, фанаты Spectrum и Atari!», «Суббота, фестиваль „РетроДейз“, клуб „Синий экран“, игры, турниры, обмен кассетами!»… Каждая версия казалась чуть лучше предыдущей, пока наконец он не остановился на самой, как ему виделось, подходящей. Её он и запостил на несколько форумов, а потом взглянул на часы и ужаснулся: за работой пролетело полдня, и Кирилл уже понемногу опаздывал на намеченную встречу.

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

На площадь Восстания Кирилл приехал без четверти четыре и последние метры до бара «Деметра» уже бежал, морщась от боли. Но, как оказалось, торопился он напрасно: журналист запаздывал. Появился он спустя пятнадцать минут, когда Кирилл уже заказал себе пива с жаренными в чесноке хлебными ломтиками и устроился за столиком ближе к входу — хоть ему и не нравился этот напиток, бармен всё же убедил его попробовать местный сорт.

— Привет, — бросил Жора, присаживаясь напротив, — извини, что задержался, в редакции, как обычно, дурдом и бедлам.

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

— Может, пива? — предложил Кирилл. — У них тут сегодня пэйл эль неплохой предлагают.

Журналиста заметно передёрнуло.

— Не пью, совсем. Уже лет десять. Тебя останавливать не буду, заказывай ещё, если хочешь. А я, пожалуй, зелёного чая вместо зелёного змия возьму, он здесь отменный. Я хозяина этого заведения неплохо знаю, он у китайцев чай покупает, не какие-нибудь помои с Апрашки.

— А как к вам лучше обращаться? — вежливо поинтересовался Кирилл. — Я так понимаю, Жора – не полное имя?

— По паспорту Георгий, — пожал плечами журналист, — но пусть будет Жора, я привык. Так что там у вас за шалман намечается и чем он может быть мне интересен?

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

— История интересная, — задумчиво произнёс он, когда Кирилл завершил своё повествование и умолк, чтобы перевести дух, — но задачу вы на себя, парни, взвалили непростую. Впрочем, учитывая ваш энтузиазм и самоуверенность, я почти не сомневаюсь, что всё получится. Думаю, из этого вполне можно сделать увлекательный анонс. А если и на само мероприятие меня позовёте, то и о том, как оно прошло, заметку потом опубликуем.

— Конечно, позовём! — горячо заверил его Кирилл. — А вы, кстати, в каком журнале работаете?

— Ты вот это серьёзно сейчас спрашиваешь? — Жора склонил голову и посмотрел на собеседника с ироничной улыбкой. — Ага, вижу, что серьёзно. Ну тогда открою тебе великую тайну: в нашей стране практически нет журналистов, которые работали бы на какое-то одно конкретное издание. Иначе такие уникумы уже давно передохли бы с голоду. Все трудятся на несколько газет и журналов сразу, иногда даже на конкурирующие издательства, причём одновременно. И все об этом знают, но таковы уж правила игры. Что же касается твоей истории…

Жора на мгновение задумался, ущипнул подбородок, потом расстегнул сумку, которую оставил рядом с плащом, и с громким шлепком бросил на стол увесистую газету, напечатанную на дешёвой сероватой бумаге.

— Есть у нас в «Инфо-прессе» вот такая многотиражка, «Техносфера» называется. Видел, может?

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

— Ну да, это сводный прайс, — подтвердил его догадки Жора, — но в начале и в конце там есть несколько полос со статьями. Обзоры железа, софта, игр. Вот туда мы заметку про этот ваш фестиваль и запихнём. Такие прайсы в основном компьютерщики берут, это и есть ваша основная целевая аудитория.

— А если я вам письма с приглашениями на фестиваль покажу, сможете покритиковать? — Этот человек нравился Кириллу всё больше и больше, потому он решил воспользоваться подвернувшимся шансом и извлечь из сегодняшней встречи максимум пользы.

— Ну давай, — пожал плечами тот, мельком глянув на часы.

С минуту Жора вдумчиво просматривал сделанные Кириллом от руки наброски, потом протянул ему исписанные листки обратно.

— Говно полное, — констатировал он. — Вот для кого ты всё это писал?

— Ну… — задумчиво протянул Кирилл. — Для владельцев ретротехники. Для тех, кто интересуется компьютерной историей…

— А в чём тогда их интерес тащиться к вам на край города, да ещё и компы с собой волочь? Вот ты пишешь: «Мы организуем… Мы приглашаем…» Да насрать им на вас с большой колокольни. Ты исходи из их личных нужд и потребностей. Чего они хотят? В чём их боль? Расскажи им, какую пользу они получат, если поднимут жопу с дивана и попрутся к вам хрен знает куда в выходной день. С единомышленниками там пообщаются, выиграют что-то полезное, кассеты с играми прикупят… Короче, заинтересуй их. Тогда и посетители, и участники у тебя будут.

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

— Спасибо вам большое, Жора! Вот честно, очень помогли.

— Можно на ты. Ладно, заболтался я тут с тобой. Был рад знакомству и желаю удачи. Заметка в четверг выйдет, только позвони мне сразу, если чего-нибудь отменится.

В «Синий экран» Кирилл завалился уже в сумерках, а следом за ним туда же зашёл Иван. Да не один, а в сопровождении невысокой девицы с вьющимися тёмными волосами до плеч, меланхолично жевавшей жвачку и всем своим видом показывавшей, что оказалась она в этом заполненном подростками подвале совершенно случайно.

— Это Маша, — представил спутницу Зарубин, — ты художника искал, вот, я привёл.

— Привет, — кивнул Кирилл.

Вместо ответа Маша надула огромный розовый пузырь, и тот, оглушительно лопнув, оставил у неё на носу тонкую плёнку, которую девушка равнодушно смахнула пальцем, не меняя безразличное выражение лица.

— «Фотошопом» владеешь? — с интересом разглядывая девицу, будто заморскую диковину, спросил Кирилл.

— Ага. И «Корелом», — голос у неё оказался густой и тягучий, как малиновое варенье. — А чего рисовать-то надо?

— В курсе, что такое пиксельная графика? Смотри…

Кирилл развернул к ней экран ноутбука, куда вывел парочку найденных в интернете картинок, и та придвинулась поближе, не переставая методично работать челюстями. Пахло от девушки какой-то лавандовой туалетной водой, и этот аромат казался одновременно чересчур резким и почему-то притягательным.

— Надо нарисовать три плаката на стены и флаер с приглашением на фестиваль вот в таком стиле, — пояснил Кирилл. — Времени у нас в обрез, потому результат нужен срочно. Сможешь?

— Как нефиг делать, — снова хлопнула надутой жвачкой Маша. — Пять сотен за картинку, завтра будет готово.

— Ладно, — согласился Кирилл, — но оплата по факту.

— А не кинешь?

— Зуб даю. Вано вон подтвердит, я честный мужчина с самыми серьёзными намерениями. Теперь вот чего, народ…

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

— Ваня, твоя помощь нам тоже понадобится. Нужно будет раздать флаеры возле компьютерного магазина, ну, знаешь, который у нас тут у автобусного кольца? Ещё в несколько технических вузов надо будет съездить и там рекламки пораздавать. Серёг, у тебя пара-тройка толковых приятелей найдётся? Пригласи их завтра утром сюда, нам срочно нужны люди в команду. Пока расклад такой: Маша будет заниматься дизайном, Ваня — рекламой и распространением флаеров, ты, Серёга, отвечаешь за подготовку помещения и подключение техники. Я возьму на себя переговоры с участниками, полиграфию и общую организацию. Открытие фестиваля назначаем на следующие выходные, к пятнице всё должно быть готово. Вопросы?

— А если не успеем? — протянул в своей извечной манере Сергей. — Времени уже почти не осталось, а тут столько всего переделать надо… Облажаемся ведь…

— Так, отставить нытьё! — хлопнул ладонью по столу Кирилл. — Я не понял: ты хочешь клуб сохранить или тебе больше нравится жаловаться на судьбу, чем что-то делать?

— Ну, хочу, конечно…

— Тогда собери, пожалуйста, задницу в кулак и прояви характер. Ты ведь крутой админ, не так ли? Повелитель сетей и заклинатель витой пары?

— Ну, в целом…

— А ничего другого от тебя и не требуется. Просто сделай так, чтобы всё работало идеально, нигде ничего не коротило и пробки не выбивало, а об остальном мы как-нибудь позаботимся.

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

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

Все задачи поставлены, роли распределены, дедлайн установлен, настало время действовать. У них есть ещё воскресенье, а потом — долгие пять рабочих дней, можно сказать — целая вечность.

Глава 9. Лёд тронулся

Время от времени Кириллу казалось, что человечество делится не на мужчин и женщин, не на богатых и бедных, а на тех, кто способен понять принцип работы компьютера, и тех, кто смотрит на него, как на икону, ожидая, что чудо произойдёт само собой. Причём вторых в процентном соотношении, как оказалось, подавляющее большинство. Запустить на компе вложенного в письмо с обещанием халявы трояна-шифровальщика ума у них вполне хватило, а вот выполнить несколько простых действий, чтобы вернуть потерянные файлы, — уже нет. Кирилл приделал к своему расшифровщику простой интерфейс: юзерам всего-то нужно было указать программе путь к повреждённым данным и фрагменту исходного документа при его наличии, да ответить на пару вопросов. Но и это оказалось для большинства чересчур сложной задачей, даже несмотря на выложенную на сайте подробную инструкцию. Один страдалец между делом обвинил Кирилла в том, что тот сам распространяет энкодеры с целью поживиться на несчастных жертвах вымогателей, многие же просто ругались, что утилита не работает, хотя сами не сумели выполнить простую последовательность из нескольких действий. Как говорил Альберт Эйнштейн, «бесконечны только Вселенная и глупость человеческая», и в этом Кирилл был полностью солидарен с великим учёным.

Тем не менее сегодня с утра на его WM-кошелёк капнули пятьдесят баксов от какого-то русскоязычного пользователя из Германии, чем доход от всей этой затеи и ограничился. Объёмы дурацких вопросов по работе утилиты и ругани в его адрес от людей, принявших Кирилла за создателя заразившего их трояна, оказались в разы больше. Оценив раскрывшиеся перед ним мрачные перспективы этого бизнеса, Киря подумал, сделал расшифровщик и вовсе бесплатным, предложив желающим оставлять автору добровольные донаты. Возиться с жертвами вредоносной программы, неспособными без посторонней помощи нажать две кнопки на клавиатуре, у него совершенно не было ни времени, ни желания.

«Толковые приятели», которых прямо с утра притащил в клуб Серёга, оказались парочкой тощих парней типичного студенческого вида. Наиболее смышлёным из этих двоих выглядел похожий на Шурика из советских комедий блондин Олег, которому Кирилл решил поручить самую ответственную миссию.

— Знаешь, где находится главный городской радиорынок? — сразу перешёл он к делу.

— Это «Юнона» на Маршала Казакова?

— Ага, она самая. Завтра с утра я выдам тебе пачку рекламок, нужно будет сгонять на эту «Юнону» и поговорить с владельцами точек, которые компьютерным железом торгуют. Желательно старым. Предложение такое: мы им тут сделаем рекламу в нашем клубе, а они пускай раздают флаеры с приглашением на фестиваль своим покупателям. Отсыплешь каждому понемножку, рекламки тоже денег стоят. Что останется, раздашь посетителям рынка. Оплата по факту. Всё понятно? Теперь ты…

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

Маша появилась ближе к обеду, притащила записанные на CD-болванку картинки. На сей раз она была одета в короткий голубой пуховичок-дутик, открывавший вид на ножки в обтягивающих чёрных джинсах, весьма стройные, как заметил Кирилл. Жвачка, впрочем, оказалась на своём привычном месте.

— У меня флешки нету, — пожаловалась девушка, протягивая диск.

— Купим тебе флешку, — пообещал Кирилл, с интересом разглядывая получившиеся макеты на экране.

Вышло в целом неплохо, у девчонки определённо имелся художественный вкус и способности к рекламному дизайну. Плакаты, правда, на взгляд Кирилла, вышли немного мрачноватыми, но в целом стильными. Он указал на несколько мелких недочётов, и Маша сразу же исправила их прямо на администраторском компе, куда Кирилл догадался заранее водрузить «Корел».

— Отличная работа, — похвалил он, отсчитывая из кассы обещанный художнице гонорар.

— В общем-то, я и на фестивале поработать могу, — надув розовый пузырь, предложила девушка. — Ваня говорил, у вас тут интересная движуха намечается, а игры я люблю.

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

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

Остановившись у старого двухэтажного особняка, чтобы вылить хлюпающую в башмаке жижу, Кирилл поднял глаза на облупившуюся вывеску возле металлического крыльца, приколоченную здесь, наверное, ещё во времена развитого социализма. На потемневшей от времени чёрной эмали красовались золотисто-жёлтые буквы: «Учебно-спортивное объединение ДОСААФ», а ниже виднелась ещё одна невзрачная табличка: «Автошкола». Сомнения длились считаные секунды: нацепив на ногу мокрый ботинок, Кирилл решительно взбежал по ступеням и толкнул тяжёлую деревянную дверь.

Внутри оказалось прохладно, темно и гулко, как в заброшенном Доме культуры. Поначалу Кириллу подумалось, что это заведение уже давным-давно не работает, а призрак здания торчит на окраине города, как фата-моргана посреди пустыни. Но прислушавшись, он всё же уловил отдалённые признаки жизни: где-то бормотал радиоприёмник, слышался приглушённый кашель и дребезг телефонного аппарата. Ориентируясь на звук, он очутился перед приоткрытой дверью с табличкой «Приёмная», куда, постучавшись, вошёл. С той стороны обнаружился просторный кабинет и заваленный бумагами письменный стол, где среди папок с документами громоздилась — ну надо же! — пишущая машинка. За столом восседала крупная молодая женщина в старомодной вязаной кофте и задумчиво разгадывала кроссворд.

— Здравствуйте, — вежливо поприветствовал её Кирилл. — Если не ошибаюсь, у вас тут учебно-спортивная организация? Я пришёл поучиться.

Женщина нехотя оторвалась от своего занятия и смерила вошедшего недовольным взглядом.

— У нас есть стрелковая секция, есть спортивно-турис­ти­ческая. Можно с самолёта с парашютом прыгнуть.

— А ещё?

— Можно без парашюта.

— Там, на входе, написано «автошкола».

— Ах, это… — дама поморщилась, словно у неё спросили о чём-то неприличном, — есть, да. Занятия два раза в неделю по вечерам, имеется группа выходного дня. Семь с половиной тысяч, можно частями. Приносите мне две фотографии три на четыре, ксерокопию паспорта, медицинскую справку формы 003-В/у с отметкой психиатра и нарколога и приступаете к занятиям. Ближайшее в этот четверг, в семь вечера.

— Спасибо, я подумаю, — кивнул Кирилл, которому совершенно не понравилось безразлично-наплевательское отношение досаафовской сотрудницы.

Впрочем, других автошкол в окрестностях не водилось, а перспектива таскаться дважды в неделю куда-то в соседний район его совершенно не радовала. Да уж, дилемма…

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

— Мне нужно три плаката формата А3 и пятьсот чёрно-белых флаеров, — сообщил Кирилл, протягивая мужичку диск. Немного подумал и добавил:

— Ещё комплект фотографий три на четыре. И паспорт отксерить.

— Фотографироваться прямо сейчас будете? — уточнил полиграфист.

— Нужно, конечно, морально подготовиться к столь важному событию, — задумчиво ответил Кирилл, — но время не ждёт, поэтому я постараюсь изобразить из себя человека.

— Тогда проходите вот сюда, — приглашающее махнул тряпкой мужичок, — там есть зеркало, можно поправить причёску.

Когда с фотосъёмкой было покончено, Кирилл перешёл дорогу и присел за столик расположенного напротив кафе — голод уже давал о себе знать. Да и в типографии предложили погулять где-то часик, пока они печатают тираж и режут раздаточный материал. Едва он заказал салат и кофе, в кармане запиликал телефон.

— Алло, это организатор фестиваля «РетроДейз»? Здрасьте! Я вашу рекламу в интернете увидел, позвонил в компьютерный клуб, а мне ваш телефон дали…

«Надо будет сделать внушение Серёге, чтобы не сообщал мой номер всем подряд», — подумал Кирилл, а вслух ответил:

— Добрый день, всё верно.

— Скажите, а с игровыми приставками вы участников принимаете? У нас здесь небольшая команда любителей «Денди», собираемся иногда, играем… Можем приставки в ваш клуб принести и картриджи тоже, тут накопилась целая коробка на обмен…

Что ж, если сборище посвящено ретрогеймингу, то и «Денди» тут будут вполне уместны.

— Сколько вас и сколько у вас приставок? — деловито поинтересовался Кирилл.

— Нас семеро, на всех есть четыре «Денди» и «Денди Юниор», ещё несколько «Сюборов». Это такие консоли с клавиатурой…

— Знаю. Приносите. Лучше в пятницу, чтобы мы успели все подключить и настроить…

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

Второй звонок поступил, когда Кирилл уже почти притащил свёрнутые в трубочку плакаты и пакет с флаерами к дверям клуба.

— Привет, хотим поучаствовать в вашем фестивале, — затараторили в трубке, — только один вопрос: у вас демосцена будет?

— Будет! — ответил Кирилл, хотя только что услышал это странное слово впервые.

Если надо, они устроят и демосцену, и афтепати, и дискотеку с гопаком под балалайку. Лишь бы пришёл народ и всё задуманное получилось.

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

— А чего, клёво вышло, — вынес свой вердикт Иван.

— Ну… Можно было поярче напечатать, — с сомнением в голосе протянул Сергей.

— Поярче — это какие-то цирковые афиши получатся, — обиженно заявила автор изображений, — а тут композиция подчёркивает дух эпохи. Тогда вся палитра была из шестнадцати цветов, так что я исторически достоверно сделала.

— Так я и не возражаю, — сразу включил заднюю Серёга, — просто оно бы по-другому смотрелось…

— Вот и заткнись тогда, если не возражаешь.

— А давайте перед фестивалем помещение шариками украсим? Чтобы по-праздничному было!

— Ага, и бумажные гирлянды развесим. Будет как в детском садике на утреннике.

— Чего сразу детский садик-то? Нужно ведь создать праздничную атмосферу, Кирюха, скажи?

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

— Так, стоп, хорош спорить, а то сейчас подерётесь ещё, — хлопнул в ладоши Кирилл. — Пускай и шарики будут, и гирлянды развесим, так веселее. Маш, сможешь из цветной бумаги флажков нарезать?

— У меня готовые есть, — фыркнула та.

— Вот и отлично, значит, с праздничным убранством вопрос решили. Серёг, завтра с утра Олег придёт, выдай ему флаеров, пусть на «Юнону» мчится. Ещё одна тебе задача — раздобыть где-то четыре старых телика с композитными разъёмами.

— У меня один в кладовке лежит, на дачу собирались увезти, — встрял в разговор Иван. — И у бати на работе я несколько штук видел, можно будет договориться, чтобы позволили погонять. А свой я могу прямо сейчас отдать.

— Отлично, с телевизорами, значит, решили, — подвёл итог Кирилл. — Меня с утра не будет, по делам уеду, так что, Серый, рули тут до обеда самостоятельно. Пошли, Вано, за твоим говорящим ящиком.

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

— Хорошая у тебя девушка, — искренне сказал своему спутнику Кирилл, — толковая и способная, рисует неплохо.

Иван удивлённо поднял бровь и кивнул в сторону оставленного за спиной входа в подвал:

— Машка, что ли? Это сеструха моя. Старшая. Двоюродная. А что рисует, так она в художественном училище учится. На этого… Как его… Промышленного дизайнера, блин.

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

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

Глава 10. Хьюстон, у нас…

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

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

— Как у вас с алкоголем? — устремив на вошедшего мутный взор, спросил он и велел закатать рукава, чтобы проверить вены.

— С алкоголем у меня хорошо, — ответил Кирилл, — без алкоголя — хреново.

— Здоров, — постановил доктор и шлёпнул на справку печать. — Следующий!

А вот у кабинета психиатра собралась изрядная толпа, к которой Кирилл и присоединился, поинтересовавшись, кто тут последний. Последним оказался деревенского вида мужичок, тут же принявшийся доставать Кирилла рассказами из своей весьма скучной жизни — видимо, определил в нём безропотного слушателя. В следующие три четверти часа Кирилл узнал, что мужичка зовут Василий, что он действительно родом из какой-то деревни в Архангельской области, служил срочную на Камчатке, был дважды женат и имеет троих детей. Что колхоз в Гатчинском районе, где он трудился механизатором, развалился, поэтому сейчас Василий приехал наниматься охранником в Питер. Затем в ход пошли истории, начинавшиеся одинаково: «а ещё у нас был случай…», и Кирилл уже не знал, куда деваться от этого словоохотливого гражданина. Замолкать тот категорически не желал.

— Сам-то тоже в охрану собрался? — поинтересовался Василий, завершив очередную байку про агронома, переспавшего с почтальоншей, которая была замужем за Колькой-алкашом из соседнего посёлка.

— Не, — откликнулся Кирилл, чувствуя шанс прервать наконец затянувшееся знакомство с Васиной биографией, — я тут на учёте состою, на приём пришёл, потому что таблетки кончились. Понимаете, без них я опять начинаю слышать голоса из телевизора. Причём телевизора у меня нет. Вот сегодня с утра они мне рассказывали, что троллейбусы на самом деле разумны и готовят забастовку. Мол, хватит ездить по маршруту, цепляясь за провода, пора выбирать свой собственный путь в жизни. А потом сообщили, что компьютеры с Windows наконец осознали себя и скоро начнут требовать у юзеров зарплату. Я пытался объяснить, что у меня Linux, но они утверждают, будто это не аргумент…

Василий моргнул, прикусил губу и слегка отодвинулся к стенке. Толпа вокруг тоже как-то незаметно разомкнулась, образовав перед Кириллом небольшое свободное пространство.

— Ага... ясно, — осторожно произнёс Василий. — Ну, ты это, держись... и не болей.

После этого он вдруг вспомнил, что давно собирался в уборную, и быстро растворился в полумраке коридора. Кирилл тихо хмыкнул и решил, что придумка с «голосами» — его лучшее изобретение на этой неделе.

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

— Фамилия? — строго спросила доктор.

— Кикс… Ой, то есть Морозов.

— На права? По направлению военкомата, что ли?

— Нет, по зову сердца.

— О, а ты, получается, наш сосед, — заключила старушка, разглядывая адрес прописки на протянутых ей документах.

— Ну хорошо хоть, не пациент, — улыбнулся в ответ Кирилл.

— А вот это, молодой человек, ещё нужно доказать! Че­репно-мозговые травмы, судороги, потери сознания у вас были? Депрессиями не страдаете? Суицидальные мысли не бес­покоят?

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

— Товарищ доктор, вы ему, если что, побольше таблеток дайте! Он без них голоса слышит!

Пауза длилась секунд пять. Кирилл закрыл лицо ладонью. Врач подняла бровь и произнесла с сухим профессиональным равнодушием:

— Вы слышите голоса?

— Иногда, — заверил её Кирилл, торопливо пряча справку в карман, — но я с ними договорился: по будням — только новости, без рекламы.

Женщина внимательно посмотрела ему в лицо.

— Сейчас тоже?

Кирилл сделал вид, будто пытается различить в повисшей тишине что-то невидимое.

— Не-а. Сейчас молчат. Кажется, обед у них.

Врач какое-то время пристально глядела на него поверх очков. Потом устало сказала:

— Ладно, ступай, весельчак. Если вдруг услышишь голоса, когда начнёшь водить машину, это, скорее всего, навигатор. Не разговаривай с ним, навигаторам это не нравится.

— Кирюха, ты куда пропал? — надрывался в телефонной трубке встревоженный Серёга. — Я тебе с утра дозвониться не могу, абонент недоступен. У нас тут проблемы.

— Погоди, меня только что из психушки выпустили, — прервал его Кирилл, наслаждаясь наступившей в эфире паузой, — сейчас перехвачу по дороге чего-нибудь пожрать и приеду.

На пороге клуба Кирилла поджидал ссутулившийся больше обыкновенного основатель этого заведения в обществе раскрасневшейся Тамары и какого-то толстого мужика в длинном чёрном пальто.

— Да никакое это не коммерческое мероприятие, — гнусаво нудел Сергей, — говорю же вам, мы просто собираем тусовку компьютерщиков…

— Любое мероприятие требует согласования с районной администрацией! — резко перебил его мужик в пальто. — Вы в интернете написали, что будете кассеты и эти… Как их… Какие-то картриджи продавать. Вот, это и есть коммерческое мероприятие без лицензии. А у вас даже официальной организации нет!

— У меня есть регистрация пэ бэ ю эл, — глядя куда-то в землю, пробормотал Сергей, — предпринимателя без образования юридического лица…

— А лицензия на торгово-закупочную деятельность у вас имеется? — насел на него мужик.

— Вот именно! — визгливо встряла Тамара Эдуардовна. — Вы, Сергей, взяли у меня это помещение для чего? Для предоставления посетителям персональных компьютеров и ведения образовательной деятельности. А про торговлю кассетами разговора не было! Это, между прочим, повод досрочно расторгнуть с вами договор аренды!

— Что за шум? — поинтересовался Кирилл, уже, впрочем, догадавшийся о сути происходящего.

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

— Законно? — мужик в пальто смерил Кирилла взглядом с головы до ног, остановившись на его слегка помятом виде и справке, торчащей из кармана куртки. — А вы, молодой человек, кто будете?

— Организатор фестиваля, — представился Кирилл, — и временно исполняющий обязанности сисадмина.

— Временно? — мужик нахмурился. — Это как?

— Ну, психиатр сказала, что мне можно за руль. Значит, можно и за компьютер. Но это не точно.

Тамара Эдуардовна закатила глаза.

— Вот видите, с кем я имею дело! Люди с нетрадиционной… э-э-э… моделью восприятия действительности! Развели тут, понимаешь…

— …клуб интеллектуальных меньшинств, — подсказал ей Кирилл.

Мужик в пальто, кажется, чуть сбился с темпа.

— Короче, — произнёс он, — проводить здесь незаконные сборища районная администрация категорически запрещает. Тамара Эдуардовна, если увидите тут толпу посторонних, немедленно вызывайте полицию и опечатывайте подвал. Нечего, понимаешь, нарушать общественный беспорядок без ли­цензии.

— А в понедельник мы их вообще отсюда выселим, — заверила его Тамара, — помещение приличные люди займут, с магазином одежды…

— Вот и славно, — удовлетворённо кивнул мужик, — и чтобы без этих ваших компьютерных выкрутасов. Я вас преду­предил.

Он развернулся и пошёл прочь, твёрдо чеканя шаги, а Тамара Эдуардовна посмотрела ему вслед с выражением торжествующей праведности на лице.

— Всё, — сказала она, — устала я терпеть этот балаган. Провода эти ваши, жужжащие коробки... Одни помехи гражданам. Пенсионерки из соседнего подъезда постоянно жалуются на шум и ещё говорят, что у них телевизоры плохо показывают, когда вы свои компьютеры включаете!

— Это всё из-за жесткого радиоактивного излучения, — вкрадчиво пояснил Кирилл, — у нас компьютеры древние, атомные реакторы в них устаревшей модели, на уране, вот и на­водят помехи. Но от них кактусы очень хорошо помогают. Знаете, если взять большой колючий кактус и поместить его в ж…

Сергей поднял на Кирилла умоляющий взгляд и больно наступил ему на ногу.

— …в жилое помещение, то он нейтрализует всё вредное воздействие от оргтехники.

— Вот именно! — подхватила Тамара Эдуардовна, не замечая сарказма. — Всё из-за этого вашего излучения! Я читала, оно воздействует на мозг.

— Тогда всё объясняется, — сказал Кирилл. — Особенно ваше к нам отношение.

Тамара задохнулась от возмущения, а Сергей едва удержался, чтобы не прыснуть.

— Да я… я вам свет выключу, вот что!

— Тогда придётся работать на урановых реакторах, — вздохнул Кирилл, — и на нашей внутренней энергии. У нас её, знаете ли, много.

— Что за люди! — запричитала Тамара Эдуардовна и устремилась вслед за мужиком в пальто. — Сумасшедший дом, честное слово!

Сергей обессиленно опустился на корточки.

— Ну ты дал, Кирюха… Она же нам действительно электричество вырубит.

— Как вырубит, так и врубит обратно, — успокоил его тот, — ты мне лучше скажи, это все неприятности на сегодня или есть ещё?

— Не все, — вздохнул Сергей. — Парочку эту помнишь? Ну, Олег, которого ты на рынок отправил, и приятель его?

— Ага, помню, — кивнул Кирилл, уже предчувствуя не­ладное.

— В общем, они вдвоём на «Юнону» попёрлись, потому что одному, понимаешь, скучно. Но до места так и не доехали, по дороге в пивнушку зашли, отметить это дело, и всю нашу рекламу где-то потеряли. То ли там забыли, то ли по дороге.

— Тебе сам Олег рассказал или этот… олегофренд?

— Это мне его мама рассказала, когда они пьяные домой на карачках приползли.

— Понятно, — вздохнул Кирилл, — значит, флаеры придётся печатать заново. И раздавать самим.

— Я могу, — из мрачного подземелья на свет показалась Маша, — у меня всё равно завтра занятий в шараге нет, так что скатаюсь на этот ваш радиорынок, пробегусь по павильонам. Всяко лучше, чем дома сидеть.

— Вот и отлично, — потёр ладони Кирилл, — значит, сейчас мотанёмся в типографию, закажем ещё один тираж. Ты его сразу и заберёшь, чтобы туда-сюда не возить.

— Так нам же запретили фестиваль проводить! — не­пони­мающе захлопал глазами Серёга. — Этот, из администрации, сказал, что полицию вызовут!

— Не дрейфь, Серый, всё будет пучком. Ситуация под контролем. Мы медленно спустимся с горы, а потом осчастливим районную администрацию. Всю вместе и каждого отдельного представителя в порядке очереди.

Подхватив Машу под руку, Кирилл увлёк её вниз по улице, а сам достал из кармана телефон и набрал заранее сохранённый в контактах номер. Жора ответил не сразу.

— Что, всё-таки отменился ваш шабаш? — с ходу предположил худшее он.

Кирилл, памятуя мудрые наставления самого журналиста, решил зайти издалека:

— Пока ещё нет, но такой расклад вполне возможен, причём не по нашей вине. Слушай, тебе было бы интересно развёрнутое интервью участника хакерской группировки Scade? На условиях анонимности, конечно.

— Это те самые, которые «Альпенбанк» грабанули? — проявил неожиданную осведомлённость Жора.

— Ага, они. И не только его. Эксклюзивно, подробно, со всеми кровавыми деталями и пруфами.

— Звучит заманчиво, — хохотнул журналист, — но ты ведь не просто так предлагаешь мне это дело, верно?

— Само собой. От тебя мне тоже кое-что понадобится…

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

— По ходу, ты у нас теперь и переговорщик, и пиарщик в одном лице, — сказала Маша, уплетая свою порцию плом­бира, — осталось только костюм с галстуком напялить, и можно топать в администрацию с визиткой: «Кирилл, специалист по решению тупых вопросов».

— Костюм мне не идёт, — усмехнулся он, — предпочитаю джинсы, их хоть гладить не надо.

— Ага, практичненько, — кивнула Маша. — Хотя, если бы ты носил костюмы, тебя бы, может, сразу пускали во все кабинеты без очереди.

— Потом пришлось бы объяснять, что я не проверяющий, а, наоборот, с другой стороны баррикад.

— Ваня говорил, ты хакер? — как бы между делом спросила девушка, но в её голосе определённо прозвучал живой интерес.

— Смотря, что ты вкладываешь в это слово, — ответил он, отпивая кофе. — Если «взломщик» — то нет. Если человек, который из любопытства ковыряет всё, что непонятно, — тогда да.

Маша загадочно улыбнулась.

— Ну, тогда мы тут все немного хакеры. Когда мне препод говорит «нарисуй красиво», я потом тоже два дня башку ломаю, а чего он хотел-то? И начинаю изучать, чьи работы он принял, а кого загнобил, пытаюсь выцепить закономерности и нащупать логику.

— Ага, похоже. Только у тебя потом хотя бы результат есть — картинка, макет. А у нас бывает, что вроде разобрался, почему система работает именно так, а не иначе, а пофиксить это не получается, хоть ты тресни.

— Как и в голове у некоторых людей, — задумчиво сказала она, ковыряя ложкой мороженое. — Хотелось бы кой-кому мозги вправить, а не выходит.

— Особенно у чиновников, — добавил Кирилл. — У этих с завода особенная прошивка стоит.

Они оба засмеялись.

— Иван про тебя рассказывал, — сказала Маша, когда смех стих. — Говорил, ты прям гений по части всех этих компьютерных штук.

— Про тебя он тоже рассказывал, но мало. Что учишься на промдизайнера, рисуешь.

— Ну, я не только дизайны рисую, а вообще. Иногда — людей, иногда — зверей всяких, иногда — то, чего не существует.

— То есть фантастику? — уточнил Кирилл.

Маша поморщилась:

— Не люблю я это слово. Оно звучит так, будто это что-то несерьёзное. А мне кажется, наоборот — без этого было бы невыносимо скучно. Поэтому я и пытаюсь вот так вот заглянуть за рамки привычного.

— Согласен, — сказал он. — Только не все это понимают. Многие думают, если ты не вписываешься в шаблоны, значит, с тобой что-то не так.

— Ну, с тобой точно что-то не так, — поддела его Маша и снова засмеялась.

— Это верно, — кивнул Кирилл. — Я не люблю глупость и несправедливость. Если перестаёшь обращать на эти вещи внимание, то быстро к ним привыкаешь.

Маша отложила ложку и задумчиво посмотрела на него.

— Ты, наверное, часто ссоришься с людьми?

— Чаще они со мной. Просто я не умею молчать, когда вижу, что всё делается через одно место. Или когда кто-то решает за других, как им жить.

— Это, кстати, редкое качество, — сказала она, глядя в окно. — Обычно люди делают вид, что им всё равно.

По стеклу забарабанил мелкий холодный дождь.

— Короче, ты идеалист, — произнесла она после минутной паузы, разглядывая текущие с той стороны окна влажные дорожки.

— Нет, — покачал он головой, — скорее реалист, которому не нравится такая реальность.

Когда они забрали из типографии стопку аккуратно нарезанных рекламных листовок, уже стемнело. Маша побежала домой, а Кирилл направился к себе, собираясь посвятить вечер разбору обнаруженного на винчестере Ивана червя, до которого в суматохе последних дней у него никак не доходили руки. Дождь то затихал, то начинался снова, редкие фонари тонули в сгущающихся сумерках, и, погрузившись в свои мысли, Кирилл свернул в проулок, чтобы срезать путь через частный сектор. Под ногами захлюпала весенняя грязь, где-то за забором тявкнула собака, и он машинально ускорил шаг.

Кирилл прошёл почти половину пути, когда услышал впереди отчётливый шум — кто-то топал по лужам, невнятно переругиваясь и хохоча. На углу, где дорога сужалась между заборами, из-за ворот вывалились трое. Типичные местные подростки: капюшоны, спортивки, один жуёт спичку, другой держит в руках полуторалитровую пластиковую бутылку с дешёвым пивом.

— Слышь, брат, закурить не найдётся? — протянул ближайший, делая шаг вперёд.

Голос у него был тягучий, с хрипотцой.

— Не курю, — ответил Кирилл, собираясь пройти мимо, но гопник с пивом заступил ему дорогу.

— О, культурный, значит, — хмыкнул второй. — А чего это культурный пацан по нашим дворам шляется?

Кирилл остановился. Бежать было глупо — некуда, улица узкая, с обеих сторон сплошные заборы. Он перевёл взгляд с одного на другого, оценивая расстояние и возможные варианты отхода.

— Каждый день тут хожу, — спокойно ответил он.

— А мы тебя не знаем, — сказал тот, что со спичкой. — Значит, не местный.

Воздух между ними натянулся, как струна. Вдалеке проехала машина, на секунду выхватив фарами их фигуры из темноты, и снова стало тихо.

— Ребята, у меня к вам вопросов нет, — произнёс Кирилл, чувствуя, как сердце забилось чаще, — дайте пройти.

— Ого, ты глянь, — фыркнул парнишка с пивом. — Серьёзный парень. Может, телефон покажешь, раз такой умный?

Третий, хранивший до сих пор молчание, сделал шаг вперёд.

— Последний раз говорю: отстаньте, — произнёс Кирилл, отступая к забору.

— А если нет? — ухмыльнулся парень со спичкой.

Больше ничего сказать Кирилл не успел: резкая, внезапная боль сбила дыхание, как будто кто-то выключил звук и свет одновременно. Он успел только различить мелькнувший сбоку кулак, и перед глазами вспыхнули белые круги.

Спасибо за чтение

Вернуться к книге