Наше последнее — и вправду последнее — совместное дело с Саидом было связано как раз с этим доказательством. Наверное, большинство удивительных и драматических событий нашей жизни начинаются с таких вот обычных разговоров. Мы сидели у Жигана после удачной кражи пароля лысого из «Аргуса». Саид с Жиганом шутя обсуждали, как еще можно заставлять пользователей самостоятельно отдавать пароли посторонним людям. Одним из способов было липовое сообщение об ошибке, на что и купился лысый. Жиган заявил, что точно так же можно имитировать панели web-почты, посылая мыло со скриптом, который хайдит настоящие кнопки программы и вместо них показывает фальшивые. Саид, в свою очередь, предложил вариант со взломом часов. Некоторые системы, заметил он, регулярно требуют от пользователей менять пароли, и эта регулярность определяется как раз «часовым демоном»…
Честно говоря, я плохо понимал, о чем говорят эти двое на своем диком жаргоне. Но чтобы поддержать беседу, зацепился за тему часов и рассказал им о том, какие курьезы вызвала Ошибка-2000 в некоторых финансовых организациях, где компьютеры стали показывать то ли 1900-й, то ли вообще 100-й год.
Может, подобным образом удастся завести часики и сейчас? — спросил я своих приятелей-хакеров. Вовсе не обязательно отматывать сто лет. Даже при несовпадении на несколько минут легко придумать схему, при которой сумма на отдельно взятом счету резко вырастет. Подобных примеров было предостаточно. В феврале того же 2000-го на компьютере одного служащего, ведавшего электронной рассылкой новостей Резервного банка Австралии, часы спешили всего на 6 минут. Из-за этого некий финансовый план попал к 64 подписчикам чуть раньше официального выхода пресс-релиза. За шесть минут люди заработали миллионы.
Жиган сразу забраковал идею. Где-то, может, и была пара курьезов, но вообще на этого мистического Бага Удвака потратили даже больше, чем надо, заявил он.
Саид лишь улыбнулся:
— Много потратили? Это хорошо. Профессор, запишите для вашего ходжи Тука-Мука новый закон: «Поспешное исправление ошибки — отличный способ сделать новую ошибку».
Мы с Жиганом лишь посмеялись, думая, что это так и останется шуткой. Но через месяц Саид сообщил, что «часики завелись» как минимум в двух отделениях Сбербанка. Он нашел дыру в соответствии с тем самым принципом, который рекомендовал для Теории Ошибок Тука.
Это было не столько желание доказать нам свои способности, сколько собственное увлечение игрой. Человек, коллекционирующий старинные монеты, не без интереса относится к старинным банкнотам. Так и Саид, с его увлечением техноантиквариатом, время от времени включал в свою коллекцию и старые программы. И так же, как в случае с железом, здесь причудливо перемешивались времена и нравы. Программа на ФОРТРАНе, заставлявшая прыгать старинные дисководы с 14-дюймовыми дисками, оказывалась (по алфавиту) рядом со странными сетевыми приложениями на странном языке ФОРТ — до знакомства с Саидом я ошибочно считал, что это просто сокращение от слова ФОРТРАН, и не понимал, в чем прелесть программ, не превышающих по размеру 5 килобайт. Зато как литератор, я находил очень символичным лес скобок ЛИСПа, из которого, как из ракушки в водорослях, рождалась первая «Элиза». Не меньшее число философских ассоциаций вызывала строчка кода на АЛГОЛе-68, которая занималась тем, что распечатывала сама себя.
Когда я только услышал о софтовой части коллекции Саида, то решил, что там должны быть собраны хакерские программы. Или вирусы. На худой конец, старинные игры вроде «Диггера». Но я ошибся. Саид собирал оригинальное. Если игра — то «Тетрис», который в качестве дисплея должен был использовать фасад здания Московского университета, с окнами-пикселями. Если вирус — то для программируемых швейных машинок, приводивший к тому, что швы сшитого такой машинкой костюма оказывались слабыми в самых интимных местах, и расходились при легком приседании.
Были в этой коллекции и просто абсурдные вещи, которые тем не менее создавали ощущение альтернативных ветвей технологии. Например, браузер с круглым окном, придуманный, очевидно, для путешествий по Сети на компьютере с круглым, как иллюминатор, дисплеем. А некоторые экспонаты и в самом деле были связаны с новыми парадигмами программирования и философии вообще. Таким был язык QRDL, созданный сектой Делителей. Он начинался как совокупность фильтров и «черных списков» для изоляции от сетевой рекламы, шпионских ботов и прочих активных информационных сущностей, которые в последнее время так и норовили без спроса просочиться в компы всего мира. Позже QRDL стал настоящим языком антипрограммирования, а потом и интеллектуальной антиоперационной системой, основу которой составляли не запросы на исполнение различных действий, а наоборот — команды-отрицания и подпрограммы-запреты для работы в агрессивной среде, где всякой динамики и так уже чересчур много. Правда, некоторые версии QRDL практиковали и такой способ защиты, как нападение: боты-антипоисковики мешали поисковым машинам находить спрятанные сайты, и даже понятие сообщения превращалось здесь в свое «анти» — в тех случаях, когда не помогает фильтр, может помочь ответный поток мусора, информация с отрицательным значением ценности.
Для меня всегда оставалось загадкой, где в наше время можно отыскивать старинные программы. Если техника сохранялась веками, то софт, как мне представлялось, был постоянным переписыванием одной истории. Даже на моем старомодном лаптопе уже не было программ из прошлого века.
Саид обычно отшучивался, когда я расспрашивал его о подобных деталях. «Надо знать места и быстро бегать» — все, что он отвечал. Из этого я понял лишь, что места существуют.
Разговор об Ошибке-2000 привел к тому, что Саид пополнил свою коллекцию софтового антиквариата оригинальной заплаткой, призванной устранить Бага Удвака. В конце прошлого века программисты в спешном порядке ставили такие заплатки на вверенные им системы. Ирония ситуации заключалась в том, что сами заплатки иногда наносили больше вреда, чем мифический Удвак.
Как рассказал Саид, покопавшийся в своих загадочных архивах, первый такой случай произошел еще до наступления 2000-го. Перед самым Новым годом американские военные из-за такой «заплатки» потеряли контакт с пятью спутниками-шпионами. Сразу после загрузки наскоро написанный патч «повесил» все компы наземной станции слежения.
А в 2008-м благодаря аналогичному патчу на крупнейшей электронной бирже в Киберджайе пропал день 29 февраля. Вначале считалось, что перескок часов с 28 февраля на 1 марта возник из-за случайной ошибки в отсчете високосных годов. Однако позже стало ясно, что для кого-то последний день февраля не пропал даром. Биржевые сделки, ошибочно датированные первым марта, были расценены правильно работающими компьютерами как «еще не случившиеся». Но не все: кто-то выборочно исправил дату на 29 февраля в нескольких сделках, и они тут же засчитались как «произошедшие». Остальные же так и висели полчаса с датой 1 марта, и после остановки торгов были аннулированы. Из-за такой выборочной работы биржи резко подешевели акции компаний, владеющих генетическими технологиями. Две из них обанкротилась.
Ответственность за этот красивый взлом долгое время никто на себя не брал. Но еще через несколько лет, после истории с «баранами Эмира», появились свидетельства, что это выходка «Гринписа». В Арабских Эмиратах надолго запомнили тот праздничный день, когда ничего не подозревающие арабы, как обычно, начали резать жертвенных животных. Однако многие бараны в этот день оказались неким хитрым образом подключены к Сети. Их агония, усиленная и размноженная Сетью, стала хлестать по нервам любителей киберсекса и клиентов сетевых магазинов с осязательно-вкусовыми приставками, по ушам меломанов и радиослушателей, по глазам фанатов онлайновых игр и телезрителей. Сколько всего баранов были заражены такой мобильной связью, неизвестно. Зато количество жителей Эмиратов, попавших в больницы, исчислялось сотнями.