Поздравляем, вы выиграли! - Нестеренко Юрий


Джордж Райт

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

— Значит, вы полагаете, что это не убийство, — произнес Майк Трентон, более известный в хакерских кругах как CrashCoder.

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

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

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

— Коллега! — презрительно фыркнул Трентон. — Какой он мне коллега? Он занимался дешевкой и примитивом… клепал видеоигры для детей младшего школьного возраста.

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

— А кому они должны были достаться? — осведомился Трентон как можно небрежнее.

— Государству. У Ричардса не было родственников. Конечно, если бы он оставил завещание…

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

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

— Компьютерные игры — это тоже наркотик, — хмыкнул Трентон. — А что, по-вашему, он должен был взять провод, привязать один конец к спусковому крючку револьвера, другой — к каретке принтера, сесть напротив ствола и послать на принтер строку «GAME OVER»?[1]

— Что-то в этом роде, — пожал плечами Мерчинсон. — Во всяком случае, его репутация заставляла ожидать чего-нибудь экстраординарного.

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

— Скорее всего. Компьютеры были для него всем.

— Вы, небось, уже лазили по диску самостоятельно?

— Только включили машину. В корневом каталоге имеется файл с именем lastwill[2] — так сказать, на самом видном месте, но это не  текстовый файл, а программа. Мы решили ее не трогать, зная об этих хакерских штучках…

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

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

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

— Мне это известно.

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

— Конечно.

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

— Не откажутся.

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

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

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

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

«Ну, Джимми, посмотрим, что ты нам припас!»

С монитора на него смотрело слово lastwill, словно приглашая запустить программу. Какова вероятность, что последствия такого запуска будут невосстановимо разрушительными? «Близкая к нулю, — подумал Трентон. — Создавая программу, которую почти наверняка запустят, Ричардс не мог наделить ее деструктивной функцией. Ведь в этом случае забава кончилась бы чересчур быстро, это слишком уж примитивно. В видеоиграх, если допускаешь ошибку, всегда есть шанс начать сначала.» Можно, конечно, перестраховаться и прогнать программу по шагам, но Трентон решил пока этого не делать. Сыграем по твоим правилам, Джимми. Хакер запустил lastwill, предварительно оставив в памяти собственную программу-шпиона, которая должна была запротоколировать все действия творения Ричардса.

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

ПРИВЕТ, ЛАМЕР!

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

Звезды еще немного померцали, и картинка застыла. Музыка смолкла с завывающим звуком, словно в результате внезапной аварии остановилась катушка старого магнитофона. Машина наглухо «висела», не реагируя на клавиатуру. Трентон подождал еще немного, затем нажал кнопку перезапуска.

Система вновь загрузилась без проблем. Трентон тут же посмотрел протокол «шпиона». Так и есть! Программа lastwill записала в одну из системных областей памяти пару фраз в характерном хакерском стиле — с заменой «С» на «круглую скобку», «О» на нули и т. п.:

«Охотимся за деньгами дядюшки Джимми? Боюсь, сосунок, ты недостаточно крут для этого»

«Ты меня недооцениваешь», — ответил Трентон. Поскольку перезапуск машины заново грузит системные области, только протокол «шпиона» и позволил установить, что там что-то было. Но Ричардс, видимо, считал такие уловки очевидным пустяком — как, впрочем, и Трентон.

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

«Я же говорил, что ты сосунок. По-твоему, я стану прятать информацию в плохих блоках? Не суди обо всех по себе.»

Трентон хмыкнул. Емкость диска Ричардса составляла 10 гигабайт; перекодировка всего этого объема заняла бы много часов, но это было не самое худшее. Из перекодированных данных следовало выделить осмысленные, а сделать это с помощью программы, учитывая склонность Ричардса заменять буквы на похожие по написанию символы, было бы непросто. Значит, следовало как-то сузить область поиска.

Очевидно, важные данные не могли находиться в свободных областях диска, где их слишком легко было случайно затереть; значит, шифрованная информация хранится в каком-то файле. Для начала Трентон решил проверить файлы, созданные или измененные недавно. Конечно, Ричардсу ничего не стоило искусственно изменить дату модификации файла, но…

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

Ричардс покончил с собой тринадцатого.

Декодировщик обработал их все — и выдал полную бессмыслицу.

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

«А у тебя кое-что есть между ушами!»

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

И вновь не получил ничего осмысленного.

Немного поразмыслив, Трентон пришел к выводу, что Ричадс изменил ключ. Но каким образом? Подсказка должна быть где-то рядом. Трентон обратил внимание на последний файл от 14 июля. Он кончался нулем. Сначала хакер не придал этому значения, поскольку ноль нередко используется для обозначения конца строки, но теперь он пригляделся к этому файлу получше. Название файла состояло из цифр и букв из начала алфавита; Трентон догадался, что это шестнадцатиричное число. Но что надо сделать с этим числом? Прибавить к первоначальному ключу? Вычесть из результата перекодировки?

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

Через минуту на экране перед Трентоном было последнее послание.

«Ты сделал это, парень — ну что ж, будем считать, что ты заработал свой приз. Это 6 миллионов долларов — ты рад? Получить их ты сможешь… — Трентон переписал адрес загородного дома. — Код замка 17654309. Остальные инструкции получишь на месте.»

Трентон спрятал в карман бумажку с адресом и кодом. Теперь оставалось только уничтожить все сообщения Ричардса.

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

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

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

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

— Ты пришел за деньгами, не так ли? — во мраке впереди возникло светящееся лицо. Это было лицо Ричардса на экране монитора.

— Ты ведь любишь видеоигры, правда? — продолжал Ричардс. — Мне было бы очень обидно отдавать свои деньги тому, кто их не любит. Ну а хорошие игры, как ты знаешь, никогда не состоят из одного этапа. Поздравляем, вы перешли на следующий уровень! Разумеется, он сложнее предыдущего. Сейф с деньгами находится в доме, тебе остается лишь найти его. Но есть маленькая проблема: дом буквально нашпигован всевозможными смертоносными штучками, которые будут стараться тебя прикончить. И помни, приятель, в этой игре у тебя только одна жизнь! — Ричардся подмигнул, и заиграла бравая музыка, характерная для видеоигр.

Трентон развернулся. Блефует Ричардс или нет, разумнее будет сейчас же выбраться отсюда и вернуться с инструментами, позволяющими обесточить дом. Но едва хакер схватился за ручку входной двери, как сверкнула искра, и Трентона отбросило на пол.

— Минус 20 очков! — радостно сообщил Ричардс. — Если ты сделаешь так еще раз, там будет уже 10 киловольт плюс лезвия, вспарывающие возможные перчатки. Разве ты не знаешь, что уровень никогда не покидают тем же путем, каким пришли?

Хакер понял, что очутился в ловушке.

— Чертов сукин сын, — пробормотал он, поднимаясь с пола и потирая пораженную током руку, — проклятый псих!

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

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

Дальше