каждый день горстями глотали пищевые добавки, призванные укрепить их кости, сердца, почки, волосы, кожу, и тем более не готовилась к ней. Не писала завещания (да и что туда вписать?), не задумывалась, предпочитает ли она кремацию или похороны в гробу, хочет, чтобы ее похоронили в фамильном склепе в Картузах, откуда была родом мама, или все-таки в Жуково, где выросла сама Юлита. По сути, она впервые в жизни осознала, что она смертна. Более того, что кто-то желает ей смерти. Кто-то пытался ее убить.
Она лежала в потрясении. И не могла пошевелиться.
Янек встал из-за компьютера. Во-первых, потому что захотелось отлить. Во-вторых, потому что солнце уже поднялось над домом с другой стороны площади Галлера и светило ему прямо в монитор. Янек задернул шторы: в воздух взметнулись пылинки, стало темно.
Ванная была маленькая, два на три метра. Места хватало ровно для душевой кабины, стиральной машины и унитаза. На полу, за дверью, лежала грязная одежда: черные футболки, джинсы, непарные носки. Янек помочился, намылил руки, после чего сполоснул их над желтой от налета раковиной. Взглянул в зеркало, освещенное мигающей лампочкой. Кожа блестела от пота, опухшие глаза налились кровью.
Янек снова сел за компьютер, отодвинул в сторону смятые банки из-под колы. Прошедшая ночь оказалась плодотворной – на удивление плодотворной. Он не думал, что доберется до исходного кода. Любой уважающий себя хакер использовал бы обфускатор, благодаря чему код стал бы нечитабельным – а заодно принял форму выпрямленного среднего пальца. Но Подонок, как называла его Юлита, этого не сделал. Почему? Скорее всего, он не собирался оставлять флешку в автомобиле, не думал, что кто-то, кроме него самого, получит к ней доступ. Он оставил ее лишь потому, что торопился, его что-то спугнуло. А может… А может, наоборот, он хотел похвастаться, хотел, чтобы кто-то прочитал этот код – и оценил его гениальность? Если так, то ему это удалось. Янек был впечатлен. Очень впечатлен.
В автомобиле Бучека, как и в любой другой новой машине, беспроводная связь осуществлялась по стандарту Bluetooth. Очень удобно: один раз подключаешь мобильный телефон к автомобилю, и в будущем он уже подключается автоматически – разумеется, беспроводным путем. Хочешь послушать музыку? Включаешь в автомобильном радио плейлист с телефона, даже не вынимая его из кармана. Кто-то звонит? Получаешь входящие сообщения по громкой связи, нажав всего одну кнопку на руле. А может, ждешь кого-то на паркинге и скучаешь? Два клика, и с телефона включается фильм на экране, встроенном в приборную панель.
Прекрасное решение. Жаль, что не очень безопасное. Во-первых, аудио- и видеосистема связаны с системой управления. Дурацкая ошибка в архитектуре, на которую никто не обращал внимания. Мол, ну что такого может случиться? Во-вторых, протокол Bluetooth уязвим. Используя уязвимость, известную как BlueBorne, хакер может подключиться к выбранному устройству, полностью минуя процедуру верификации.
Должно быть, Подонок ехал за Бучеком, следил за ним. Подключился к бортовому компьютеру через Bluetooth, а затем отправил пакеты данных под видом музыкального файла, скажем, с расширением. MP3 или. M4V. Процессор аудиосистемы воспроизводит его, думая, что это, к примеру, новая песня Эда Ширана. А на самом деле это данные типа CAN, которые используются для связи с системой управления, – ну а та, в свою очередь, связана с информационно-развлекательной системой. В теории встроенная защита программного обеспечения должна пресечь попытку перехвата контроля на расстоянии. Вот только прошивку заранее подменили на вредоносную версию, которую бортовой компьютер счел обновлением системы. Все это благодаря маленькой флешке. Такой маленькой, что Бучек даже не обратил на нее внимания.
Янек с восхищением покачал головой. Он и раньше подозревал, что Подонок профи. А теперь у него было железное доказательство, вот только, увы, оно не приближало его к решению проблемы. Если на корпусе флешки и были отпечатки пальцев, то кретин Гральчик их стер. Модель диска популярная и доступная, поэтому выяснить, где Подонок ее купил, невозможно, по крайней мере не на имеющиеся у Янека средства. Можно еще раз просмотреть записи городского мониторинга, но Янек сомневался, что что-то там найдет. У автомобильных Bluetooth-ресиверов радиус действия сигнала до нескольких десятков метров, так что Подонок мог ехать на большом расстоянии от джипа Бучека. Да и вообще, что прикажете искать? Черную машину с черепом и скрещенными костями на капоте?
Оставался только код. Янек потер уставшие глаза и снова уставился в монитор. Файл под названием “hd”. Фрагмент скрипта, подменяющего программное обеспечение одного из процессоров.
#!/bin/sh
# update ioc
/fs/mmc0/cmds/iocupdate – с 4 – p /fs/mmc0/cmd/cmcioc.bin
# restart in app mode
lua /fs/mmc0/cmd/reset_appmode.lua
# sleep and wait for reset
/bin/sleep 42
Строчки казались на удивление знакомыми. Здесь было что-то, что он уже точно видел раньше. Но что? Где? Когда? Этого Янек, как ни старался, вспомнить не мог. Он протяжно зевнул, потянулся за телефоном. Семь неотвеченных вызовов от Юлиты. Он перезвонил, она не отвечала, поэтому он оставил запись на автоответчике. “Интересно, – подумал он, закрывая глаза, – что у нее такого срочного?”
Юлита обнаружила, что проблема – о чудо! – не в боли. Да, ободранная кожа горела огнем, а сломанные кости ныли. Но, к счастью, болеутоляющее делало свое дело. Все ощущения притупились, как будто кто-то колол ее булавкой в онемевшую ногу: вроде все чувствуешь, но не до конца. Однако стоило Юлите пошевелиться – или еще хуже, глубоко вздохнуть, – и боль проникала в мозг, наносила удар, взрывалась с такой силой, что из глаз текли слезы.
Хуже всего было другое: у нее не получалось почесаться. А колючее одеяло раздражало ногу, бирка от больничной пижамы царапала шею, кожа под гипсом нестерпимо зудела. Все это сводило Юлиту с ума, но отвлечься ей было не на что: ни компьютера, ни телефона, ни книги или газеты. А Юлите нужно было чем-то себя занять, всегда и везде, так уж был устроен ее разум; если она забывала взять с собой телефон в туалет, то читала инструкцию на освежителе воздуха или считала плитки на стенах. А теперь ей приходилось лежать с головой на вытяжке, уставившись в белый, как лист бумаги, потолок.
Она начала различать медсестер по шагам: пани Люцина ходила медленно, шаркая тапочками, пани Эльжбета энергично топала, словно компенсировала тем самым низкий рост. Иногда Юлита узнавала стук каблуков доктора Козловской; та целыми днями носилась из одного конца больницы в другой. А теперь она услышала другие шаги. Мужские, в обуви на твердой подошве. Дверь в ее палату открылась.
– Кто… Кто там? – прохрипела она.
Ответа не последовало, послышался лишь звук открываемой молнии,