Парк юрского периода — страница 56 из 96

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

– Лекс… Лекс, беги… Лекс… – неожиданно пробормотал Малкольм.

– Кто это – Лекс? – спросил Малдун.

– Кажется, так звали маленькую девочку, – ответил Дженнаро.

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

– Нам придется отвезти его обратно, – сказал Малдун.

– Вы собираетесь уехать отсюда прямо сейчас? Но мы ведь еще не нашли детей! – сказал Дженнаро.

Малдун покачал головой и сказал:

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

– Значит, придется возвращаться, – заключил Дженнаро.

– Да, придется.

Они сели в машину. Дженнаро спросил:

– И как же вы скажете Хаммонду о том, что его дети потерялись в парке?

– Да никак. Вы ему сами все расскажете.

Центр управления

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

– Так, значит, Малдун уверен, что дети где-то в парке?

– Да, он так думает.

– Ну, тогда мы обязательно их отыщем.

– Надеюсь… – сказал Дженнаро. При взгляде на этого старика, который безмятежно поглощал мороженое, адвоката пробрала дрожь.

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

Дженнаро сказал:

– Но, надеюсь, вы понимаете, сэр, что дети потерялись?

– Потерялись? – Хаммонд пренебрежительно фыркнул. – Естественно, понимаю, я еще не впал в старческий маразм. – Он вздохнул и переменил тон: – Послушайте, Дональд, я хочу, чтобы вы правильно восприняли то, что у нас произошло. У нас случилась досадная поломка – из-за этой грозы или еще из-за чего-то, и в результате произошел этот прискорбный и достойный всяческого сожаления несчастный случай. Вот и все – ничего более! Мы занимаемся устранением неисправности. Арнольд скоро разберется с компьютерами. Малдун скоро найдет и привезет детей – уверен, он вернется с ними раньше, чем я покончу с этой порцией мороженого. Так давайте просто спокойно сядем и немного подождем, хорошо?

– Ну, как скажете, сэр, – согласился Дженнаро.


– Почему? – спросил Генри Ву, поглядывая на экран компьютера.

– Потому что я думаю, что Недри что-то намутил с кодировками, – сказал Арнольд. – Поэтому я их и проверяю.

– Ну, ладно. А ты просматривал настройки? – спросил Ву.

– То есть?

– Ну, не знаю… Например, система контроля за доступом – она ведь до сих пор работает? – подсказал Ву. – Запись доступа к программам с клавиатуры, и все такое…

– Господи! – воскликнул Арнольд и щелкнул пальцами. – Точно! Системы контроля можно отключить только с главной панели!

– Правильно, – сказал Ву. – Ну, если запись доступа работает нормально, ты можешь проследить все команды, которые Недри вводил вручную, с клавиатуры, и узнаешь, что он сотворил с компьютерами.

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

Пока он говорил, на мониторе появился перечень всех команд, которые Недри сегодня днем вводил в компьютер:

13, 42, 121, 32, 88, 77, 19, 13, 122, 13, 44, 52, 77, 90, 13, 99, 13, 100, 13, 109, 55, 103, 144, 13, 99, 87, 60, 13, 44, 12, 09, 13, 43, 63, 13, 46, 57, 89, 103, 122, 13, 44, 52, 88, 9, 31, 13, 21, 13, 57, 98, 100, 102, 103, 13, 112, 13, 146, 13, 13, 13, 77, 67, 88, 23, 13, 13

system

nedry

go to command level

nedry

040/#xy/67&

mr goodbytes

security

keycheck off

safety off

sl off

security

whte_rbt.obj

– И что, это – все? – удивился Арнольд. – Он же ковырялся в компьютере несколько часов подряд! По крайней мере, насколько я помню.

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

Ряды чисел, которые шли вначале, были кодировкой системы ASC–II, которую Недри ввел в компьютер со своей клавиатуры. Цифры эти означали, что он использовал обычный доступ к компьютеру – как любой другой пользователь, который садился за машину. Значит, вначале Недри просто осматривался, проверял, что к чему, – очень странное занятие для программиста, который создал всю систему программ для парка.

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

– Возможно… – согласился Арнольд, который пытался разобраться в том, что же Недри сделал с системой, и теперь просматривал перечень команд – строчка за строчкой. – По крайней мере, мы можем выяснить, что он тут натворил.

«System» – это Недри послал запрос на то, чтобы перейти с обычного пользовательского уровня непосредственно к программным кодировкам. Компьютер потребовал его имя, и тот набил: «nedry». Такой пароль, очевидно, был заранее введен в систему контроля, и компьютер открыл ему доступ к системе. Потом Недри запросил переход на самый высокий уровень программного контроля – «go to command level». Для того чтобы пропустить его на этот сверхсекретный уровень, компьютеру потребовалось не только имя пользователя, но еще и цифровой код и особый пароль. Недри ввел следующее:

nedry

040/#xy/67&

mr goodbytes.

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

keycheck off

safety off

sl off.

– Он попытался отключить все системы контроля, – сказал Ву. – Не хотел, чтобы кто-нибудь знал, что он собирается сделать…

– Вот именно! – подтвердил Арнольд. – Но только он, наверное, не знал, что теперь уже нельзя отключить всю систему с какого-то другого модуля – вручную влезть в эти программы можно только при доступе с главной панели компьютера.

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

Security.

И компьютер позволил ему остаться в этой подсистеме.

– А вот наконец и пароль, которым он взломал программу, – сказал Ву и показал на последнюю строчку команд, введенных Недри:

Whte_rbt.obj.

– Что за чертовщина? – удивился Арнольд. – «Whte_rbt» – это, наверное, «white rabbit», «белый кролик». Это что, его любимая шутка?

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

– Давай посмотрим, в каком блоке кодировки эта штучка запрятана, – сказал Арнольд. – Может, сообразим, для чего она. – Он вышел в меню программных утилит и набрал на клавиатуре объект поиска:

FIND WHTE_RBT.OBJ.

Компьютер высветил следующую строку:

OBJECT NOT FOUND IN LIBRARIES.

То есть блок с таким названием в каталогах компьютера не значился.

– Ее нет, – подытожил Арнольд.

– А ты поищи не по названию, а по содержанию – просто включи поиск такой строки, – предложил Ву.

Арнольд напечатал:

FIND/LISTING: WHTE_RBT.OBJ.

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

– Есть! – воскликнул Ву. – Это даже не объект, это – команда!

Стрелка на экране указывала на одну из строчек программы:

curV = GetHandl {ssm.dt} tempRgn {itm.dd2}.

curH = GetHahdl {ssd.itl} tempRgn2 {itm.dd4}.

on DrawMeter (!gN) set shp_val.obj to lim (Val {d}) – Xval.

if ValidMeter (mH) (**mH).MeterVis return.

if Meterhandl (vGT) (DrawBack (tY)) return.

limitDat.4 = maxBits (%33) to {limit.04} set on.

limitDat.5 = setzero, setfive, 0 {limit.2 – var (szh)}.