Chapter 34

Modules

 

 

Angela was still reeling from the revelation that the players they used for bait had been murdered. She was no lawyer, but she knew Jasmine directing them to withhold that connection from the FBI was a crime. “Accessory after the fact” was what Anand had called it when she’d raced to his office after the agents left. He said he had advised Jasmine to reconsider her decision, but Angela knew there was no chance of that. Jasmine had already made it clear she had no intention of revealing anything until they had a lock on the hacker. Once Jasmine decided on a direction, the course was set until the object was either achieved or a new discovery altered the plan.

It turned out, a new discovery had been made that afternoon. Angela was in Anand’s office when she received Rituraj’s messages. She almost cried out with relief when she got the first one. We found something. Meet in fifteen minutes. Then, five seconds later, she received the second and felt like a balloon after all the air had been let out. You’re not going to like it. Anand must have seen the waves of changing emotions wash over her face as he’d asked her repeatedly if everything was all right. “Probably not,” she told him as she rushed from his office to her own to await Rituraj’s report.

Twenty agonizing minutes later, a disheveled Rituraj showed up at her door. He slumped into one of her visitor chairs and opened his laptop without making eye contact. The pungent scent of his body odor made her nose wrinkle.

“You look like shit, Rituraj.”

“I feel like shit. We all feel like shit. I haven’t been home in three days.”

That explained the body odor.

“I’m having a really bad day too,” she said. “Your drama message didn’t make it any better.”

“No dramas, just mysteries,” he said. Then he looked up, searched her desk, and snatched the remote for the large monitor that hung on her wall. He turned it on and streamed the display from his laptop. On the screen was a list of six file names she recognized as program source code files.

“The tracking data we received led us to something.”

“Thank God.”

“Yes. Your consultant is very good.”

“You don’t know about him,” she reminded Rituraj with an edge in her voice.

He shrugged. “Whatever. The event trace data included request and response pairs.”

Angela knew by request and response pairs Rituraj was referring to the messages the LMM simulation’s programs used when communicating to one another.

“When we tried to execute the captured requests in the clone world, the response programs crashed—brought the whole clone system down.”

“That’s not right,” she said. “If the programs in the clone world are the same as the live world, why would the requests cause the clone world to crash?”

“Because some of the programs in the live world are different.”

His words shocked and infuriated her. The clone world was a small-scale replica of the simulation systems customers used. The software in the clone world was supposed to be kept identical to that used by customers in the live world at all times.

“That’s never supposed to happen.”

“We were as surprised as you. We’ve been over it a hundred times. My guys haven’t slept since we received the trace files. There’s a code mismatch.”

“Someone is going to lose their job for that Rituraj,” she fumed. “The clone has to match live. That’s the whole point. We keep the clone world in synch with the live world so we can debug online problems.”

Rituraj’s eyes met hers for the first time since he’d sat down. They were bloodshot, and looked both angry and wounded by her statement. “Don’t you think I know that? We all know that. No one screwed up. The synchronizing routines work perfectly. Someone replaced the files in the live world after they were last synched with the clone, and there’s no record of it.”

“What do you mean replaced?”

Replaced,” he almost shouted. “Copied new programs over the old ones.”

“Why did it take so fucking long to figure that out? Didn’t we look for modified files when all this started?”

“Of course we did. All the program files on the clone system are the same size and have the same date and timestamps as the live system.”

“I don’t understand,” she said. “You just said some of the live files were replaced.”

“The files look the same on the outside, but they’re not the same on the inside.”

“That’s impossible.”

Rituraj shook his head. “Difficult, but not impossible. We did a byte-by-byte comparison of all the files on the clone and live systems. All twenty thousand of them.” He nodded toward the screen. “These six program files were modified.”

Angela put her head in her hands. “How did someone do this from the outside?”

Rituraj gazed down at his laptop as if he were searching the keys for the answer.

“Rituraj?”

He looked up. “I don’t believe it was done from the outside. The person who did this had full administrative access to the live world servers and knew how to deploy code to them without causing an outage or triggering alerts.”

“Someone on the operations team?” she asked in an almost leading manner—hoping it wasn’t a developer, though not wanting it to be one of Em’s people either.

Rituraj violently shook his head. “No way. There’s no one on that team who could pull this off.” His eyes dropped back to the keyboard. “Whoever did it, changed the player-character management system. That’s sophisticated stuff. Only a SIM programmer could do it, and it couldn’t have been just any programmer. These modules are really old. Some of them go back to the original world versions.”

“Then it is someone on our team.”

Rituraj laughed. “I don’t think so. I’m the best you got, and I couldn’t do it.”

He tapped on his laptop and the screen filled with program source code. The first line read: /* Author: Marcus Day. */

Angela stared at the code. “Marcus?”

“Yes. All six modules were originally developed by him. The stuff is uber-complex. No one on the team understands the code.” He emphasized, “No one.”

“Someone obviously understands it,” she replied.

He shook his head. “None of us. These files are part of the core artificial intelligence engine that controls the simulated characters. You see who wrote it. We’re all scared to touch it.”

Angela stood and walked over to the monitor as if a closer look at the cryptic code would reveal something worthwhile. “Whoever changed the modules couldn’t have rewritten them from scratch. They had to make changes to the existing source code. Can’t we see who downloaded the source code files?”

“We checked that, and that’s something else you’re not going to like.”

Her patience was gone. “Who accessed them?” she snapped.

“No one has looked at these files in almost a year.”

“Come on, Rituraj, enough with the fucking suspense. Who was the last to access them?”

Rituraj pressed a key on his keyboard and a single user ID appeared next to each file.

Angela felt the room spin when she recognized it. “No fucking way,” she hissed.

Rituraj nodded. “She’s the last person to download these files.”

“Jasmine? She hasn’t worked on a program in years.”

“It’s her ID.”

Angela stared into the monitor. Jasmine couldn’t be behind the Anomaly. She knew that at her core. Someone had to have stolen her ID. She turned back around. Rituraj’s eyes were closed. She clapped her hands and his eyes popped open. “Can we put the correct files back on the live world servers and shut down the Anomaly?”

“It’s not that simple,” he said. “I talked to the security team. They said there could be a booby trap that brings the whole system offline if it detects a restoration attempt. This is what they feared most. This hacker owns our world. If we try to fix it, God knows what he will do.”

“What did they suggest?”

“Resigning.”

She scowled at him.

“We need to build a new live world environment from the ground up. It’s thousands of servers.”

“Shit,” she muttered. “Have you started?”

“Not yet. It’s going to take weeks.”

“I know, but you got it easy.”

“How is that easy?” Rituraj asked, incredulous.

“You’re not the one who has to explain it to the Days.”

Angela walked to the door and motioned for Rituraj to leave. “Get started on those servers.”

He stood and headed for the office door.

“The hacker is not Jasmine,” she said as he passed.

“Probably not.”

“And Rituraj.”

He turned.

“Everything about this is top secret, especially what you just told me.”

He punched his chest in a gladiator salute and strode off.

Angela took five deep, slow breaths and headed for Jasmine’s office.