Страница 14 из 145
Выйдя в командную строку, Алексей открыл директорию почтового клиента. Запустил минималистичный редактор и загрузил сухие логи BinkleyTerm. Если кто-то смог подделать заголовок и отправить письмо от имени закрытого узла, телефонная линия должна была зафиксировать входящий звонок.
В строку поиска легла системная метка — 03:14, время обработки аномального пакета. Алексей искал команду «RING» — системное уведомление о напряжении на порту модема. Искал «CONNECT» — подтверждение успешного рукопожатия удаленных систем.
Пролистав лог с трех ночи до четырех утра, он достиг конца файла, упершись в пустую строку. Ничего. В записях отсутствовали любые упоминания о дозвоне. Модем US Robotics не принимал внешний сигнал и не снимал трубку. Линия оставалась абсолютно мертвой в тот момент, когда почтовый сортировщик зафиксировал появление нового письма.
Алексей до хруста стиснул челюсти. Привычное техническое недоумение стремительно перерастало в паранойю. В безупречной, выверенной системе возникла логическая брешь. Пакет не проходил через телефонные провода АТС. Он материализовался прямо внутри герметичной базы ноды.
Алексей отодвинул кружку на самый край стола, подальше от клавиатуры. Началась фаза технического расследования.
Пальцы отбили команду запуска Norton Commander. Экран рассекли две синие панели. Тоссер уже переварил утреннюю почту, искать исходник в папке входящих не имело смысла. Алексей провалился в древо каталогов, открыв скрытую директорию резервного копирования, куда система сбрасывала отработанные файлы *.pkt. Там, среди десятков стандартных архивов, лежал пакет от адреса 2:5030/77.777 размером чуть больше двух килобайт.
Алексей навел на строку желтую полосу курсора и нажал F3. Встроенный просмотрщик вывел содержимое на экран. Сисоп ожидал увидеть мешанину псевдографики и битых символов, характерную для помех на линии, но сквозь строй служебных тегов проступал связный кириллический текст. «О досточтимая леди Ольга…» — гласила первая строка. Дальше тянулось длинное, витиеватое послание, завершавшееся высокопарной подписью: «Иллиэль».
Алексей убрал руки от клавиатуры. Телефонная статика и сбои модема не умели генерировать осмысленные предложения с именами. Теория о случайном линейном мусоре рассыпалась окончательно. Внутри базы лежало настоящее, кем-то осознанно написанное письмо.
Он переключил режим просмотра. Текст исчез, уступив место сплошному потоку шестнадцатеричного дампа: ряды цифр и латинских букв выстроились в ровные колонки. Теперь Алексея интересовала только структура пакета. Он вчитывался в заголовок, выискивая нестыковки в байтах, следы кривой сборки или маркеры того, что файл клеили кустарными утилитами. Временные метки создания, намертво вшитые в код, совпадали с часами MS-DOS до секунды. Пакет не путешествовал через транзитные узлы Фидонета. Он материализовался прямо здесь, на жестком диске, идеально имитируя легальное сообщение.
Алексей с глухим рычанием раздражения захлопнул окно шестнадцатеричного дампа. Открыл системные конфигурационные *.bat файлы. Он искал любые следы постороннего вмешательства: дописанные злоумышленником строчки кода, измененные пути к директориям, внедренные левые командные файлы маршрутизации. Он построчно, буква за буквой, вчитывался в команды, которые писал сам много месяцев назад.
Солнце за окном поднималось все выше. Его лучи начали пробиваться сквозь узкие щели в пыльных шторах тонкими, яркими столбами света, в которых лениво кружились пылинки. Утро неумолимо перетекало в душный день. Алексей потратил все эти часы на жесточайший, бескомпромиссный аудит собственной системы, не вставая со стула. Он перепроверил настройки защиты BinkleyTerm, выставив максимальный, параноидальный уровень детализации в логах. Он запустил тяжеловесную проверку на вирусы, заставив дисковод надсадно выть. Он искал малейшие признаки локального входа в систему — вдруг кто-то из его знакомых физически сел за его компьютер, пока он спал мертвым сном на продавленном диване в соседней комнате?
Но результаты были нулевыми. Он не нашел ни одной, даже самой незначительной логической ошибки. Никаких следов резидентного вируса, хитрого трояна или клавиатурного шпиона, затесавшегося в автозагрузку. Система была кристально чиста и стерильна.
Правый глаз Алексея под толстым стеклом очков начал мелко, нервно дергаться в такт частоте обновления монитора. Это была не просто усталость, это была чисто физиологическая реакция его аналитического мозга на крушение базовых устоев его мира, на потерю абсолютного контроля над тем, что он всегда считал продолжением своей собственной нервной системы.
Он тяжело, со свистом выдохнул спертый воздух, откинулся на спинку стула так, что старые пружины жалобно скрипнули, и тупо уставился на пожелтевший от времени пластик системного блока. В голове, привыкшей оперировать жесткими булевыми переменными «истина» или «ложь», образовался пугающий вакуум. Алексей понимал невозможность произошедшего: письмо оказалось внутри его дома, но входная дверь, обвешанная замками логов, никогда не открывалась.
* * *
Громкий щелчок проворачивающегося замка заставил Алексея вздрогнуть, вырывая из оцепенения. В тесную прихожую, тяжело шаркая стертыми подошвами кроссовок по дешевому линолеуму, вошел Денис — бессменная правая рука сисопа, человек, способный сутками молча копаться в чужом кривом коде, питаясь лишь воздухом, растворимым кофе и магией цифр.
В руках Денис очень бережно, словно хрустальную вазу, держал запечатанную в блестящую плёнку картонную упаковку совершенно новых дискет формата 3.5 дюйма.
Пройдя в комнату-аппаратную и бросив упаковку на край стола, он быстро окинул взглядом Алексея. Денис, несмотря на внешнюю отрешенность, умел читать эмоциональные состояния своего босса гораздо лучше, чем системные ошибки. Он мгновенно, за секунду оценил ссутулившиеся плечи, нервно дергающийся правый глаз и стеклянный, остановившийся взгляд, устремленный в одну точку на мониторе.
Алексей ничего не сказал вошедшему другу. Ему не нужны были лишние слова. Он просто медленно поднял правую руку и молча указал вытянутым, чуть дрожащим указательным пальцем на мерцающий экран монитора.