“Right now it doesn’t matter who did it,” said Sahara. “We have to find a way to undo it.” She walked to one of the chairs and picked up a djinni cable. “How do you select which mind you jump into?”
Omar shrugged. “A menu system, I guess? You’re not going to use it, are you?”
Sahara lay down on the chair. “You’re damn right I am. We’ve got to get Anja out of there before she gets herself killed.” She plugged the cable into the jack at the base of her skull. “Okay, this makes sense. There’s a rudimentary menu, but mostly it’s just a list with a search function. I’m finding Anja . . . there she is. Going in.” Sahara’s body went inert, and one of the wall screens lit up with a new view: the view through Anja’s eyes, in the middle of the battle. “It’s the end of the fracking world out here,” said Anja’s voice from a speaker.
“Can you hear me?” asked Marisa.
“Barely,” said Anja/Sahara. “Only if I try—it’s crazy loud out here. I’m going to find cover. I think her wrist is broken, and—ow—maybe a couple of ribs.”
Marisa pointed to Lal. “That means he can hear us, too, if he’s paying attention. We need to find some way of incapacitating him so we can work.” She looked around the room, saw a box full of blue headjack drives, and smiled maliciously. “Oh, that’s perfect.”
“What are you going to do?”
Marisa pulled out one of the drives—a dose of Bluescreen—and walked toward Lal. “I’m going to crash this blowhole’s brain.” She ripped the djinni cable out of his headjack, and his eyes popped open, disoriented and frightened.
“What? Marisa?”
“Hi, cutie,” Marisa said, and jammed the Bluescreen dose into the jack.
“Wait,” he said, “don’t do that!” His eyes started to roll back, and his muscles clenched as the drug took effect. “Stupid . . . bitch . . .” He passed out, and Marisa unplugged the drive triumphantly.
“Call me a bitch?” She spit on his chest. “Help me tie him up, the crash only lasts a few minutes.”
“There were easier ways of subduing him,” said Omar. “Now he’s going to wake up as a lunatic killer zombie, right here in the room with us.”
Marisa pulled a long cable from a box in the corner. “That’s why we tie him up,” she said. “And believe me, this was way more satisfying.” She lashed Lal’s wrists together as tightly as she could, then his ankles, and finished by tying him firmly to the chair. “Now we can get down to business. If this is malware, we need to look at the code—but that’ll take hours, maybe days to sift through it.”
“I thought you were a computer genius,” said Omar.
“This is the most complex program I’ve ever encountered,” said Marisa, “and I’m completely unfamiliar with it. Finding the piece that doesn’t belong is like . . . looking for a needle in a needle factory. There’s no way to tell the piece I want from the zillion other pieces I don’t. Maybe if we try it from another angle . . . do you have any idea how the malware got in?”
“I don’t know code,” said Omar. “You know that.”
“Is it a targeted attack,” Marisa asked, thinking out loud, “or some kind of mutant glitch? Maybe it got in through whatever back door you use to bypass the users’ security systems. I’ve been trying for days to get Anja’s antivirus software to delete Bluescreen, and nothing works. Did you just disable each target’s software completely? How did you not expect something like this to happen?”
“Are you crazy?” asked Omar. “What good is a puppet with no antivirus software? A system with no security is useless; we’d lose control of the target within seconds.”
Marisa nodded—she’d studied enough viruses on her hotbox to see how quickly they could destroy a system, turning the fanciest computer into a useless brick. So how did Bluescreen bypass everyone’s security? The program broke past the security once by overloading it, which is how it installed itself, but then what? They needed the security disabled to protect their software, but enabled to protect the user. How did they do both . . . ?
“That’s it,” she whispered. “Why didn’t I see it before?” She looked at Omar. “They add their own security software. It’s kind of brilliant, actually: when Bluescreen installs itself it also installs a second antivirus program, over the top of the one you already have. It’s just like Yosae or Pushkin or whatever you use, but run out of private databases on these servers.” She gestured to the servers lining the south wall. “They keep your pre-existing system active, so you don’t notice, but they disable it, so that all the actual antivirus work is being done by Bluescreen itself. That’s why we could never get Anja’s Yosae to kill it, even when we added it directly to the database.” She nodded; this explained everything. “eLiza was studying VR, so she’s the one who built the puppet code, but Nils was a security specialist. This was his job on the team—not cracking people’s security, but maintaining it.”
“That, well . . . ,” Omar stammered. “That makes sense. But how does that help us find the malware inside of the malware?”
“We don’t have to,” said Marisa, looking at the servers. “Now that we know how it works, we can save everyone out there the same way we tried to save Anja outside of her school: we upload a copy of Bluescreen to the Bluescreen security database, and tell it to recognize itself as a virus. Then we run a system update and it will delete itself from every connected system that has a copy of the virus.” She turned to look at him, feeling hope for the first time in days. “We can wipe Bluescreen off of every puppet out there, all at once, and then burn this place to the ground so it can never happen again.”
“It might work,” said Omar, “But that server is protected by biometric security. It’s completely unhackable.”
Marisa looked at Lal, still unconscious from his Bluescreen overload. “No it’s not.”
TWENTY-FOUR
Marisa lay down on a VR chair, fishing for the cable behind her. Just before she plugged it in she looked at Omar, eyeing him warily. “Don’t do anything stupid while I’m in there.”
“I’m on your side,” said Omar.
“For the moment,” said Marisa, glaring at him. “That doesn’t mean we’re friends.”
She watched him a moment longer, then plugged the VR cable into her headjack. The world faded away, replaced by a simple menu: green glowing names on a plain black background, with a search function sitting dormant in the corner. She blinked on it, and entered the name Lal Muralithar.
That user is not found in the database.
“He’s not in here,” she said.
Omar’s response seemed distant and tinny, like he was speaking through a ventilation duct: “Try again. He’s starting to wake up, so maybe it’s done installing.”
She ran the search again, and there it was. Lal’s name. She hesitated a minute, then blinked on it . . .
. . . and suddenly she was back in the room, but instead of lying in the chair she was tied tightly down to it.
“Omar,” she shouted, “you triste mula! I’m gone for two seconds and you tie me up?”
Omar glanced at her, raising his eyebrow. “I’m assuming from the Spanish that you’re Marisa?”
“Of course I’m Marisa,” she said, “who else would I . . .” She trailed off, turning her head to look at the chair next to her. There was her body, limp and inert. She was in Lal. “Oh, that’s freaky as hell.”
Omar was watching her with a mixture of fascination and disgust. “You’re telling me.”
“Untie me,” she said. “The less time I have to spend in here the better.”
He knelt down, working the knots loose in the cables. Marisa shifted in the chair, trying to see her new body better. Everything felt different; her muscles moved differently than she was used to, and they felt more powerful. She looked down at her body, disoriented by the bizarre new shape of it: her waist wider, her thighs thicker, her breasts replaced by a smooth, flat chest. The sense of wrongness made her nauseated, and she looked away, closing her e
yes.
“This is so weird.”
“You use other bodies all the time in Overworld,” said Omar. “This is no different.”
“This is monstrously different.”
“But it’s the same skill set,” said Omar. “All you have to do is walk across the room and access the DNA scanner—you can do everything else back in your own body.”
Marisa sat up, swinging her legs over the edge of the chair. Lal’s body was taller than hers, and balanced differently; most of his height was in his torso, which made his waist bend in a way she wasn’t expecting. She stood up slowly. “They must have done this a lot to be so good at it,” she said out loud. “The things they did in Anja’s body, running through the streets like that—they must have practiced for months in other bodies, getting the technology right.”
“Sahara’s doing fine in Anja,” said Omar.
“Their body types are similar,” said Marisa. “Sahara’s a little taller and fuller, but not by much. Going from me to Lal is just . . . way too much.”
“Hurry,” said Omar. “They’re still fighting out there.”
Marisa nodded and walked to the biometric scanner, finding that it was, as Omar had predicted, easier than she’d expected. She gave it a thumbprint, a retina scan, and a pinprick blood sample. The display rotated, processing the data, then turned green. “I’m in.”
“Then get back into your body and finish this,” said Omar.
“Tie me back up,” said Marisa. “No, wait! One thing first.”
Omar raised his eyebrow. “Are you going to punch yourself in his face?”
“Tempting,” said Marisa, and blinked on Lal’s djinni interface. “I’ve got something so much better in mind. Saif, tenemos un pollito que comernos.” She sat back down on the chair, rearranging some of Lal’s software while Omar retied the cables. When the ties were secure Marisa blinked out, appearing back in her own body. She felt a moment of vertigo from the sudden shift in reference frame, then shook herself out of it and stood up. “Get Sahara out of there,” she said brusquely, walking to the computer equipment. “I don’t know what will happen if she’s in Anja’s head when the software gets erased.” Omar nodded, and Marisa went to work on the computers, using both her djinni and several of the keyboards at once—old mechanical models and standard touch screens, her one hand jumping back and forth in a dizzying pattern, working faster than she’d ever worked before. She found the antivirus database, dumped the Bluescreen code into it, and shouted behind her. “We clear?”
“Clear,” said Sahara. “Hit it.”
Marisa hit the button, initiating a full system update. The server contacted every Bluescreen user, told their djinnis to force a virus scan, and thus began methodically deleting itself from every user’s head. Marisa watched the screens, holding her breath, praying it would work. Sahara stood next to her, holding her hand and watching with her.
“Where’d you leave Anja?” Marisa asked.
“In the back corner of the lot,” said Sahara. “Bao’s watching her.”
“But she’s free again,” said Marisa. “The algorithm’s in control, and she’ll attack him again.”
Sahara nodded. “So let’s hope this—” She pointed at one of the screens. “It’s working.” The puppets were slowing, some of them stopping outright, or even falling over. The gangsters, practically allies at this point in the battle, protecting each other from the endless horde of puppets, stopped as well, watching in wonder as the mindless army went limp. The puppets blinked, stared, swooned; some of them lost their balance, while others screamed in horror at their sudden awareness of where they were, and what they were doing. Marisa called Anja, weeping in joy when she heard her voice.
“Mari,” said Anja. She sounded exhausted—her voice raw and broken—but she was alive. “Did you do it?”
“We did it,” said Marisa. “It’s all over.”
“Not all,” said Sahara. “We need to destroy these servers—we need to make sure none of this can ever happen again.”
“Drop the firewall and give me access,” said Jaya. She sounded exhausted as well. “I just fought this gaandu system for thirty solid minutes—I’m going to do things to it that’ll give my own computer nightmares.”
“We can’t risk it,” said Marisa. “None of this can be allowed to hit the net, even in a cache somewhere. It has to die here, and physically.”
“It will be my pleasure,” said Omar, and fired a shot into each server in turn.
“No!” screamed Lal. Marisa turned, seeing Lal awake and struggling with his bonds. The cables held, and she turned back to the screens without a word.
“That’s a good start,” said Sahara, “but give me an hour with a fire axe and I can be gruesomely thorough.”
“No time,” said Marisa. “Anja, how are you doing?”
“I’m pretty broken up,” said Anja. “I’m going to pass out now, and I sincerely hope I wake up in a hospital.”
“We’ll get you there,” said Bao.
Marisa looked at the monitors again; the Tì Xū Dāo gangsters were leaving, and so were the enforcers, probably terrified that the momentary peace would end at any second. Calaca, barely walking, led the remnants of La Sesenta resolutely toward the building. “They’re going to tear this place apart,” said Marisa. “We don’t want to be here when they get in.”
“What do we do with him?” asked Omar, gesturing to Lal with his handgun.
“You’ve got to save me,” said Lal. “You need your money back—I can get it for you, just don’t destroy my servers, and don’t leave me for the cops—”
“We’re not just going to leave you,” said Sahara, “we’re going to leave you in pieces. Where’s that fire axe?”
“We don’t need to hurt him,” said Marisa. “He’s already hurt himself.”
“Spare me the moralizing,” Lal spat. “How have I hurt myself—by forgetting the power of friendship? By losing you? I thought you had more vision than this, Marisa, but you’re a useless little girl. I have plenty of other thugs on the payroll, and when they get here—”
“Oh no!” Marisa formed her mouth into a perfect O, looking as falsely concerned as she could. “Did you go online?”
“Of course I went online, you stupid bi—”
“I told you not call me that,” said Marisa. “Which is only one of the many, many reasons I took the liberty of deleting your security software.”
“You—” he spluttered. “How?”
“I was in your head,” said Marisa. “It’s a pretty nasty place, but trust me, it’s about to get a whole lot nastier.” She looked at Sahara. “He’s been online . . . ten seconds now? Twenty? How many computer viruses do you think he has by now?”
“Depends on his service provider,” said Sahara, copying Marisa’s tone of mock concern. “Johara, I assume?”
“Naturally,” said Marisa.
“That’s a very popular target,” said Sahara. “Those satellite pathways are crawling with malware—none of it’s all that dangerous if you’ve got a good security system, but . . .”
Lal blinked.
“Deleting a pop-up?” asked Marisa. Lal glared at her, then blinked again. “You’re going to get a lot of those,” she continued. “Ad loops, bloatware, free offers from porn sites. Free offers from goat porn sites.” Lal was blinking almost constantly now, and Marisa looked at him coldly. “You’re a monster, Lal, and I can’t think of any better punishment than to throw you in with the biggest monsters on the net. If you’re good, you can crawl out of that virus-infested hole in four, maybe even three months. You’ll be in jail by then, though, so, you know: spoiler warning.”
Lal fell back on the VR chair, his eyes twitching involuntarily, his brain lost under an avalanche of malware.
TWENTY-FIVE
“The Foundation is claiming responsibility,” said Bao. “They said they built a virus to attack the djinnis, to show how easily they can be corrupted.”
Bao, Marisa, and S
ahara were sitting in the hospital, watching the chaos, waiting to hear from the doctors about Anja’s condition. Omar had come as well, but the friends had refused to talk to him, and he’d left the waiting room almost as soon as he arrived. Marisa didn’t know where he’d gone, and frankly hoped she’d never have to see him again.
“How can the Foundation build a virus?” asked Sahara. “They hate technology.”
“That doesn’t mean they don’t use it,” said Bao.
“I don’t like it,” said Sahara, folding her arms. “It’s too easy.”
“Nothing about this has been easy,” said Marisa, tapping the empty prosthetic dock on her shoulder. The hospital was even more crowded and desperate than it had been that morning—was it really still the same day? Even with most of the Bluescreen victims shuttled off to other hospitals, the Mirador facility was ground zero for the worst of the worst cases. It made Marisa cringe to think that Anja was among them.
Sahara nodded. “So the explanation shouldn’t be easy, either. There has to be more to this than some big, obvious villain. It’s too . . . well, obvious.”
“Just be grateful we got out clean,” said Bao. They’d left out the back of the building just as La Sesenta entered from the front, and from the sounds they heard Calaca was every bit as thorough in his destruction as he’d promised.
“I just wish any of my nulis had survived,” said Sahara. “This is the kind of stuff my show needs—not the secret, criminal stuff that could get me arrested, but the dramatic aftermath is awesome. I could be raking in the blinks right now.”
Marisa heard a voice cutting through the chaos—Mr. Litz had arrived. Anja’s father. She jumped to her feet, bracing herself for another rant about her bad influence on his daughter, but her heart plummeted when she saw that he was talking gratefully to Omar. That sneaky rat had been waiting for him by the front door. . . .