“Got anything?”
Setting the cup next to the mouse pad, she pointed at the screen. “Sure do, but it doesn’t look good.” She took a minute to bring her superior up to date.
Looking over her shoulder, Reid said, “Damn. Looks like the signature string of the virus is different in every cocoon.”
“Yeah,” she said. A virus that mutated so much between replications was nearly impossible to catch, especially with such a long signature, because the possible combinations were nearly astronomical. Although the situation looked quite hopeless, Susan didn’t get upset about it. “There’s no way to clean it even if we knew the mutation pattern.”
“What about writing a prescription to handle all possible permutations?”
She shook her head and wrote down some numbers on a piece of paper. “That won’t work. Look.”
1 Strain Byte = 8 Bits
7 Bytes = 56 Bits
POSSIBLE COMBINATIONS = 256 OR 7.2 × 1016
“Astronomical,” she hissed. “There are … how big is this number … one trillion repeated seventy-two billion times?”
“I get the point,” said Reid.
“It’s as close to infinity as we’re ever going to get. I can certainly write a treatment to kill the few hundred strains that we’ve managed to capture, but there’s no way to kill every strain out there. The next time the virus strikes, it will do as it pleases because it mutates every time, making it quite impossible to stop it from executing its directive … which brings me to the next step. Let’s find out how much we can disassemble from the main body of this virus. Maybe that’ll give us a clue.”
She activated a custom disassembler, a software engine that used the ones and zeroes that all computers understand—also known as binary or machine code—and translated them into assembly code, a low-level program that showed the ones and zeroes as operation codes, or “opcodes,” strings of instructions and data that a human can understand.
The screen changed to:
“Not much got translated,” she said, sipping coffee.
“Seven percent is better than nothing,” Reid commented while Susan typed N.
A moment later short sections of opcodes and data browsed down the screen, in between long sections of machine code that the disassembler was not able to translate. She scrolled up to the first section that was translated.
“What’s that doing?” asked Reid, pointing at the lines of opcodes of the highly customized assembly code. It could be read only by Susan—plus the two assistants she had trained to avoid leaving Reid hanging after she had killed herself.
She inspected the opcodes for a minute before saying, “This section’s a straight counter that keeps the code in a loop.” She reached for her engineering notebook and a ballpoint pen. “It’s essentially doing this.”
10 START
20 A = PREV
30 A = A + 1
40 IF A > 86400 THEN GOTO 70
50 PAUSE 1 SECOND
60 GOTO 30
70 CONTINUE EXECUTION
Then she added, “If you assume for the time being that the value in PREV is zero, then register A gets initialized as zero and begins to increment by one. As long as the value in register A is less than or equal to 86,400, the virus will remain in this initial loop, unable to go any further in the program. And each loop is essentially one second long.”
“What defines the value in PREV?”
Susan shook her head. “Don’t know. Maybe something later on in the virus.” She typed a couple more commands and extracted the current value in register A. It was the number 86,400, meaning the loop had completed and the virus program had proceeded to the rest of its code.
“So, this code is sort of a delay circuit in the software, right?”
“That’s exactly what it is.” Reaching for her calculator, Susan punched in several numbers, repeated the operation just to be safe, and then looked at him. “The delay is set for 86,400 seconds, or twenty-four hours.”
“This explains why it occurs only once per day.”
Susan nodded. “It must reset itself somehow after execution and start over, ticking away until the following day.”
Susan scrolled down, past many rows of machine code that the disassembler had been unable to decode, and reached another section of opcodes.
“Can you make this out?”
She nodded while scribbling in her notebook,
START
WAKE = MASTER. DATE
IF WAKE = 12.12.99 THEN GOTO FREEZE.20
IF WAKE = 12.13.99 THEN GOTO FREEZE.19
IF WAKE = 12.14.99 THEN GOTO FREEZE.18
IF WAKE = 12.15.99 THEN GOTO FREEZE.17
IF WAKE = 12.16.99 THEN GOTO FREEZE.16
IF WAKE = 12.17.99 THEN GOTO FREEZE.15
IF WAKE = 12.18.99 THEN GOTO FREEZE.14
IF WAKE = 12.19.99 THEN GOTO FREEZE.13
IF WAKE = 12.20.99 THEN GOTO FREEZE.12
IF WAKE = 12.21.99 THEN GOTO FREEZE.11
IF WAKE = 12.22.99 THEN GOTO FREEZE.10
IF WAKE = 12.23.99 THEN GOTO FREEZE.09
IF WAKE = 12.24.99 THEN GOTO FREEZE.08
IF WAKE = 12.25.99 THEN GOTO FREEZE.07
IF WAKE = 12.26.99 THEN GOTO FREEZE.06
IF WAKE = 12.27.99 THEN GOTO FREEZE.05
IF WAKE = 12.28.99 THEN GOTO FREEZE.04
IF WAKE = 12.29.99 THEN GOTO FREEZE.03
IF WAKE = 12.30.99 THEN GOTO FREEZE.02
IF WAKE = 12.31.99 THEN GOTO FREEZE.01
IF WAKE = 01.01.00 THEN CONTINUE MAIN EXECUTION
“Damn,” Reid said, shaking his head. “This is a damned countdown to the year 2000.”
“The virus checks the date in some master clock to see which day it is. It does so once a day, according to the opcodes at the beginning, and depending on which day it is, it goes to a different subroutine, which freezes systems for a specified time according to which day it is.”
“But the first event took place on December eleven. This program shows the twelfth.”
“You’re right. This probably means that the virus is synchronized to a time zone east of ours, where the date has already changed,” Susan said.
“It first happened at one minute after eight on the eleventh, which is one-oh-one in the morning on the twelfth, Greenwhich Mean Time.”
Susan nodded, doing the math in her head. “So it’s either synchronized to GMT or another time zone east of GMT.”
“Right.”
“So, on December twelfth, GMT, the event lasted twenty seconds. On the thirteenth, nineteen seconds, and so on. The question is: what happens on January first?”
She bit her lower lip, feeling her stomach knotting. The emotion momentarily confused her. She hadn’t really cared about anything since her family died, except for catching Hans Bloodaxe. That carefree attitude had boosted her career at the FBI because Susan Garnett was never afraid to speak her mind. After all, what did she have to lose? Her superiors always knew she would provide them with a truthful assessment of a situation, free from personal biases or secret agendas.
So, why do you care now?
“Good question,” she said. “Looks like as long as it is not January first, the main program is not being executed. The software bypasses it and orders another global computer freeze.”
“What would happen if you advanced the system clock to January first? Would that force at least this system to experience what the world would on January first?”
She shook her head. “According to this code, the virus doesn’t care what date is stored in the system clock. It gets its date from a master clock, probably from some central location. The only way to force it to show what would happen on January first is to advance its original clock, but in order to do that we also need to know its origin.”
“Too bad.”
“Actually, I would have been disappointed if this hacker, who has gone to such extreme measures to come up with this global virus, would have made such an obvious mistake by allowing anyone to
just advance the clock and see what would happen on January first, which would then give us insight into how to protect our systems from such an attack.”
Reid exhaled. “You got a point there.”
She nodded and scrolled down to the next section of disassembled code. After reviewing the opcodes, she jotted down the translation for one of the freeze routines.
10 FREEZE.20
20 A = 0
30 EXECUTE LOCKKEYS
40 EXECUTE DISPLAYLOCK
50 A = A + 1
60 IF A > 20 GOTO 90
70 PAUSE 1 SECOND
80 GOTO 50
90 EXECUTE RELEASE KEYS
100 EXECUTE DISPLAY RELEASE
110 PREV = 20
RETURN
“So this is where PREV gets defined,” commented Reid, rubbing two fingers against the two-day white stubble on his chin, making the raspy sound of sandpaper.
“Yes,” replied Susan, working the keyboard and the mouse. “It provides an offset to the daily counter to compensate for the duration of the event, so that every day the virus occurs at exactly one minute after eight in the evening, local time. Pretty ingenious.”
She scrolled down to the bottom of the file and found no other sections translated.
“So,” Susan said, browsing through two pages worth of notes. “All we know is that it strikes once per day at the exact same time, one minute after eight in the evening. The initial event started yesterday, and it lasted twenty seconds. The second event, which happened today, lasted nineteen seconds. That information matches our findings in the disassembled virus.”
Reid nodded, pushing his glasses up the bridge of his nose with an index finger. “The countdown starts twenty days before the end of the millennium with an event that lasts twenty seconds. Then nineteen seconds for nineteen days before January first.”
“And so on. Also the freeze algorithm is fairly straightforward, locking the keys and the display while the internal counter in the virus regulates the length of the event depending on which day it is. And we know nothing else.”
Reid leaned back. “Great. So we have confirmed what we already suspected about the countdown, but have no idea what will happen on January first.”
“That about wraps it up.”
“How do we figure out where it came from?”
She shook her head. “This is how I’ve done it in the past. I’ve even caught Bloodaxe this way. I trap a virus, dissect it, release a potion to the Internet, and ninety-nine percent of the time it also leads me to the source. This time, however, I have nothing. I get the feeling that my cocoons will capture the exact same thing tomorrow, and the day after.”
“Any word of advice from our hacker community?” Reid crossed his legs and frowned.
She shrugged. “Everyone who had input has given it. There’s nothing beyond the usual.”
“What about Bloodaxe?”
Susan Garnett froze, before slowly turning to face her superior. “What about him?”
“Do you think he might know?”
A lump formed in her throat. She swallowed, acid spurting in her stomach at Reid’s insinuation. “We didn’t make a deal with him, remember? The man is a—”
Reid put a hand on her shoulder, his lined face softening. With his white stubble, round face, and large bulk, he began to resemble Santa Claus. “I know what he did, Sue. I’m the one who convinced the director not to make a deal, remember?”
Susan managed a slight nod.
“We all want to see the bastard rot in jail. But this problem is beyond all of us. The high-tech world is at its most vulnerable moment in history. You know there’s going to be a lot of unexpected problems popping up all over the place when the clock turns from nineteen ninety-nine to two thousand. The last thing we need is some global virus corrupting files at the worst possible moment. This is a matter of national security. We must figure out what this thing is going to do and how to stop it. We need to get to the very bottom of the problem and we only have eighteen days to do it.”
Susan Garnett stared in the distance, contemplating her situation, remembering the last time she had seen Hans Bloodaxe, cuffed, escorted out of the courtroom by two policemen after the jury found him guilty on all counts, sentencing him to life in prison for the murder of her family, as well as three other people in the Washington, D.C., area, pedestrians run over by automobiles. The bastard Bloodaxe had gotten what he deserved, not only condemned to spend the rest of his days in a federal prison, but also banned from ever accessing a computer system again. That latter punishment had been far more severe than the jail time, for it meant robbing the hacker of his purpose in life, like denying a musician access to a favorite instrument, or a pilot an airplane, or an artist a canvas and oils—forever.
Susan had stared into Bloodaxe’s blue eyes as the judge pronounced the unexpected twist to the sentence. His face, quite composed during the delivery of the life sentence, had gone ashen. The hacker would have collapsed had it not been for the officers flanking him. The knowledge that she had inflicted so much pain on her family’s murderer had finally quenched her desire for retribution. Now Reid was considering making a deal for information.
“Sue? You okay?”
“You know what’s he’s going to ask for, right?” Susan snapped, a finger cocked at ther superior. “The bastard could care less about the jail time. He’s spent most of his life inside some dark room hacking anyway. He was already a hermit. Being in jail doesn’t bother him. What’s punishing him is the fact that he’s a high-tech junkie, and now he’s not getting his fix. That’s the real punishment that Hans Bloodaxe received for killing my family. You ask him to help us out and he’ll demand access to hardware and software in return. Are you seriously considering giving him that?”
Troy Reid removed his glasses, breathed on them, and kept them on his lap while pushing out his lips, obviously pondering his response. After a moment he said, “If he can help us prevent this virus from doing whatever it is that it might do, I’ll consider allowing him some access under close supervision, to make certain that he’s not concocting a high-tech reprisal. Personal issues aside, in my own judgment I consider that a fair business deal for vital information on this case. It’s no different than previous deals the FBI has made with convicted criminals.”
“Well,” Susan said, crossing her arms, “have you considered the possibility that Bloodaxe’s the one who set this whole thing up as an insurance policy in case he ever got caught? It’s quite a coincidence that a few months after his conviction this virus suddenly comes out of nowhere, and now here we are, considering lessening his sentence in return for help in cracking another one of his viruses.”
Reid made a face while contemplating that scenario, and then almost laughed. “I’ve got to hand it to you, Sue. You sure know how to put doubt in a man’s head. You think he could have done this?”
“He’s brilliant—no, he’s beyond brilliance. Bloodaxe’s in a class of his own. I can see how he could have worked secretly for months—maybe years—slowly creating his ultimate masterpiece, a virus that would be released in the event of his capture and conviction, a virus that no one else could break except himself, forcing the authorities to go back to him and offer him a deal for his assistance.”
“Damn. I’m beginning to think that you just might have something there.”
“For all I know, this could be one of a number of contingency viruses he’s stashed away at secret Internet locations. Perhaps he’s planning on releasing them one at a time to give him negotiating leverage. In a year or less he may have negotiated his way out of jail.”
“An interesting, and somewhat scary, theory. But … can you prove it?”
“There’s only one way to find out,” she said, finishing her coffee. “Only one way.”
Chapter Five
000101
1
December 13, 1999
The large millennium clock atop the National Gallery, overlooking Trafalgar Squar
e, in the heart of London, England, washed the dawn skies with its crimson hues, its pulsating glow mixing with the city’s gleaming holiday decorations.
Antonio Strokk stepped out of a black cab where Northumberland Avenue met Trafalgar Square, by the Charles I monument, blending with a mob of early-bird tourists already snapping pictures of the old king’s equestrian statue and the impressive Nelson monument across the street. Its large stone lions flanked a granite column and bronze capital rising 185 feet high, with the statue of Nelson, England’s greatest naval hero, at the top.
Strokk glanced up at the millennium clock, its nearly hypnotic rhythm momentarily distracting him. Christmas music flowed out of unseen outdoor speakers, attempting to brighten an otherwise cold and gloomy December morning in the English capital.
He zipped up his leather jacket before producing a city guide from his back pocket, pretending to study it while surveying the crowd. An Asian woman dressed in a business suit and holding a small colorful umbrella milled aimlessly about the square, pointing at the large lion statues while speaking Japanese. Two dozen tourists, mostly elderly couples, aimed their Sony camcorders at the sculptures, chattering among themselves and following her.
Strokk frowned, then walked across the street to inspect Nelson’s statue, absently staring at the bronze reliefs on the podium, which illustrated Nelson’s major battles in the Napoleonic wars.
The request had arrived three hours ago—reaching him only after being relayed through the normal channels—in the form of an address jotted on a napkin at a café on the other side of town. Obeying professional habits, Strokk had memorized the number before pocketing the napkin, which he had later torn up and dumped in a sewage drain. He had taken one underground trip and three taxicabs before emerging here, feeling confident that he had not been followed. Still, you could never be certain. The last cab had dropped him off four blocks from his destination, but Strokk would take a much longer route to get there. In his business it paid to be paranoid.
He leaned against the pedestal supporting one of the lions and continued to inspect the river of humanity crossing the famous square. Gloved businessmen in dark trench coats walked briskly by, holding briefcases, visibly annoyed at the slower tourists, particularly those stopping abruptly to snap photos destined to fill forgotten shoe boxes in attics or basements. A red double-decker bus cruised up Northumberland Avenue turning right on Strand.
01-01-00 Page 7