Jurassic Park (Page 49)

Then Gennaro shone the light on the legs. "He put a tourniquet on." Malcolm’s belt was twisted tight over the right thigh. Gennaro moved the light down the leg. The right ankle was bent outward at an awkward angle from the leg, the trousers flattened, soaked in blood. Muldoon touched the ankle gently, and Malcolm groaned.

Muldoon stepped back and tried to decide what to do next. Malcolm might have other injuries. His back might be broken. It might kill him to move him. But if they left him here, he would die of shock. It was only because he had had the presence of mind to put a tourniquet on that he hadn’t already bled to death. And probably he was doomed. They might as well move him.

Gennaro helped Muldoon pick the man up, hoisting him awkwardly over their shoulders. Malcolm moaned, and breathed in ragged gasps. "Lex," he said. "Lex . . . went . . . Lex . . ."

"Who’s Lex?" Muldoon said.

"The little girl," Gennaro said. They carried Malcolm back to the Jeep, and wrested him into the back seat. Gennaro tightened the tourniquet around his leg. Malcolm groaned again. Muldoon slid the trouser cuff up and saw the pulpy flesh beneath, the dull white splinters of protruding bone.

"We’ve got to get him back," Muldoon said.

"You going to leave here without the kids?" Gennaro said.

"If they went into the park, it’s twenty square miles," Muldoon said, shaking his head. "The only way we can find anything out there is with the motion sensors. If the kids are alive and moving around, the motion sensors will pick them up, and we can go right to them and bring them back. But if we don’t take Dr. Malcolm back right now, he’ll die."

"Then we have to go back," Gennaro said.

"Yes, I think so."

They climbed into the car. Gennaro said, "Are you going to tell Hammond the kids are missing?"

"No," Muldoon said. "You are."

Control

Donald Gennaro stared at Hammond, sitting in the deserted cafeteria. The man was spooning ice cream, calmly eating it. "So Muldoon believes the children are somewhere in the park?"

"He thinks so, yes."

"Then I’m sure we’ll find them."

"I hope so," Gennaro said. He watched the old man deliberately eating, and he felt a chill.

"Oh, I am sure we’ll find them. After all, I keep telling everyone, this park is made for kids."

Gennaro said, "Just so you understand that they’re missing, sir."

"Missing?" he snapped. "Of course I know they’re missing. I’m not senile." He sighed, and changed tone again. "Look, Donald," Hammond said. "Let’s not get carried away. We’ve had a little breakdown from the storm or whatever, and as a result we’ve suffered a regrettable, unfortunate accident. And that’s all that’s happened. We’re dealing with it. Arnold will get the computers cleaned up. Muldoon will pick up the kids, and I have no doubt he’ll be back with them by the time we finish this ice cream. So let’s just wait and see what develops, shall we?"

"Whatever you say, sir," Gennaro said.

"Why?" Henry Wu said, looking at the console screen.

"Because I think Nedry did something to the code," Arnold said. "That’s why I’m checking it."

"All right," Wu said. "But have you tried your options?"

"Like what?" Arnold said.

"I don’t know. Aren’t the safety systems still running?" Wu said. "Keychecks? All that?"

"Jesus," Arnold said, snapping his fingers. "They must be. Safety systems can’t be turned off except at the main panel."

"Well," Wu said, "if Keycheeks is active, you can trace what he did."

"I sure as hell can," Arnold said. He started to press buttons. Why hadn’t he thought of it before? It was so obvious. The computer system at Jurassic Park had several tiers of safety systems built into it. One of them was a keycheck program, which monitored all the keystrokes entered by operators with access to the system. It was originally installed as a debugging device, but it was retained for its security value.

In a moment, all the keystrokes that Nedry had entered into the computer earlier in the day were listed in a window on the screen:

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

goto command level

nedry

040/ # xy/67&

mr goodbytes

security

keycheck off

safety off

sl off

security

whte_rbt.obj

"That’s it?" Arnold said. "He was screwing around here for hours, it seemed like."

"Probably just killing time," Wu said. "Until he finally decided to get down to it."

The initial list of numbers represented the ASCI keyboard codes for the keys Nedry had pushed at his console. Those numbers meant he was still within the standard user interface, like any ordinary user of the computer. So initially Nedry was just looking around, which you wouldn’t have expected of the programmer who had designed the system.

"Maybe he was trying to see if there were changes, before he went in," Wu said.

"Maybe," Arnold said. Arnold was now looking at the list of commands, which allowed him to follow Nedry’s progression through the system, line by line. "At least we can see what he did."

system was Nedry’s request to leave the ordinary user interface and access the code itself. The computer asked for his name, and he replied: nedry.

That name was authorized to access the code, so the computer allowed him into the system. Nedry asked to goto command level, the computer’s highest level of control. The command level required extra security, and asked Nedry for his name, access number 7 and password.

nedry

040/# xy/67&

mr goodbytes

Those entries got Nedry into the command level. From there he wanted security. And since he was authorized, the computer allowed him to go there. Once at the security level, Nedry tried three variations:

keycheck off

safety off

sl off

"He’s trying to turn off the safety systems," Wu said. "He doesn’t want anybody to see what he’s about to do."

"Exactly," Arnold said. "And apparently he doesn’t know it’s no longer possible to turn the systems off except by manually flipping switches on the main board."

After three failed commands, the computer automatically began to worry about Nedry. But since he had gotten in with proper authorization, the computer would assume that Nedry was lost, trying to do something he couldn’t accomplish from where he was. So the computer asked him again where he wanted to be, and Nedry said:

security. And he was allowed to remain there.

"Finally," Wu said, "here’s the kicker." He pointed to the last of the commands Nedry had entered.

Whte_rbt.obj

"What the hell is that?" Arnold said. "White rabbit? Is that supposed to be his private joke?"

"It’s marked as an object," Wu said. In computer terminology, an "object" was a block of code that could be moved around and used, the way you might move a chair in a room. An object might be a set of commands to draw a picture, or to refresh the screen, or to perform a certain calculation.

"Let’s see where it is in the code," Arnold said. "Maybe we can figure out what it does." He went to the program utilities and typed:

FIND WHTE-RBT.OBJ

The computer flashed back:

OBJECT NOT FOUND IN LIBRARIES

"It doesn’t exist," Arnold said.

"Then search the code listing," Wu said.

Arnold typed:

FIND/LISTINGS: WHTE-RBT.OBJ

The screen scrolled rapidly, the lines of code blurring as they swept past. It continued this way for almost a minute, and then abruptly stopped.

"There it is," Wu said. "It’s not an object, it’s a command." The screen showed an arrow pointing to a single line of code:

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

curh = GetHandl {ssd.itli} tempRgn2 {itm.dd4}.

on DrawMeter(!gN) set shp-val.obi to lim(Val{d})-Xval.

if ValidMeter(mH) (**mH).MeterVis return.
if Meterband](vGT) ((DrawBack(tY)) return.
limitDat.4 = maxbits (%33) to {limit 04} set on.

limitDat.5 = setzero, setfive, 0 {limit .2-var(szb)}.

on whte-rbt.obi call link.sst {security, perimeter} set to off.

Vertrange={maxrange+setlim} tempVgn(fdn-&bb+$404).

Horrange={maxRange-setlim/2} tempHgn(fdn-&dd+$105).

void DrawMeter send-screen.obi print.

"Son of a bitch," Arnold said.

Wu shook his head. "It isn’t a bug in the code at all."

"No," Arnold said. "It’s a trap door. The fat bastard put in what looked like an object call, but it’s actually a command that links the security and perimeter systems and then turns them off. Gives him complete access to every place in the park."

"Then we must be able to turn them back on," Wu said.

"Yeah, we must." Arnold frowned at the screen. "All we have to do is figure out the command. I’ll run an execution trace on the link," he said. "We’ll see where that gets us."

Wu got up from his chair. "Meanwhile," he said, "meanwhile, that somebody went into the freezer about an hour ago. I think I better go count my embryos."