1st Case - James Patterson Page 0,26
was he also Gwen’s killer?
As it turned out, no.
It didn’t take more than a quick look through Angeletti’s social media to determine that he’d been in the Bahamas on the night of the Petty murders. That was backed up with the Bureau’s check on travel manifests for the United flights that Angeletti had booked and with security footage from the hotel where he’d stayed.
That sleazebag was going to jail, for sure. Just not on a murder charge.
All of which meant a couple of things for me. I was off the hook for any interference I might have caused in a federal investigation. But I was also back on the outside of this case, looking in. As soon as Angeletti was cleared of the killings, the Bureau handed all physical and digital evidence over to the local police.
Keats didn’t stop there, either. I think I really had pissed him off, and I wasn’t quite sure what to do with that, professionally or personally. I felt awkward around Billy now, even if I wasn’t 100 percent sorry. At least I’d managed to make good on my promise to Gwen Petty’s friends and bring down that scumbag, regardless of anything else.
Meanwhile, it wasn’t like Keats was going out of his way to make me uncomfortable, but he was most definitely reining me in. My copy of the app was deleted from my workstation, along with everything I’d uploaded from Gwen’s various devices. By the end of the week, I was back to entry-level threat assessment and penetration testing. It was like I’d never been attached to the case at all.
I understood where Keats was coming from, but that didn’t mean I could just forget about it. If anything, my detour through Angeletti’s hellish little studio had me more resolved than ever. I guess I’m stubborn that way. Or obsessive, depending on who you ask.
There wasn’t much I could accomplish from the Bureau field office. But lucky for me, I just happened to know someone else with a vested interest in this case. Someone who might be feeling a little cooped up herself and might appreciate a conversation that had nothing to do with midnight feedings or diaper rash.
So as soon as I could get away from the office that evening, I headed over to Eve’s for some unofficial consulting. I didn’t know what I expected from her, exactly, but the alternative was to do nothing at all.
And that just wasn’t an option.
CHAPTER 28
AN HOUR LATER, we were sitting at Eve’s dining room table, slurping down bowls of pho from Bon Me while I bitched about my day.
“Okay,” she said once she could get a word in edgewise. “Let me ask you this. If it were your case, what would you be doing?”
I liked the question. It was exactly what I’d been asking myself all day.
“I’d tear down that app from scratch, one subroutine at a time,” I said. “There’s got to be some kind of vulnerable function in there. Some way to swim upstream back to whoever’s sending it out.”
Eve smiled down at Marlena, cooing and gurgling in her little tabletop bassinet.
“Black hat hacking the black hats,” she said. “I like it. But don’t be too sure of yourself. They know what they’re doing.”
“It’s moot, anyway,” I said. “Keats took away all my toys. I can’t even look at the app anymore, much less run it. I should be asking what you’d do.”
“I’d be doing the same thing, starting with a full audit on the source code,” she said. Then she glanced across the room at her workstation and back to me again with a canary-eating look on her face.
“In fact,” she said, “maybe I already am.”
That’s when it hit me, like a Mack truck with a big DUH on the license plate.
“You still have the app on your system, don’t you?” I asked.
Eve smiled again. “I thought that’s why you were here,” she said.
“It is now,” I said.
All of a sudden, I wasn’t the least bit hungry. If anything, I was aggravated with myself for missing something so obvious. I hate making mistakes, and I really hate when they’re unforced errors. It was like I’d just lost an hour I couldn’t get back.
That said, there was nothing stopping me now. When I walked over to Eve’s desk, I saw that she already had a web vulnerability scanner up and running. That was a good start, but I needed to put my eyeballs directly on that app’s code.
“You were just waiting for me