WebNovels

Chapter 2 - Chapter 2: Daylight

I woke up on the couch with my face pressed into the armrest and one arm hanging off the edge like something that died trying to escape.

I don't remember deciding to sleep. My body just quit on me sometime around six, the way a laptop shuts down when you ignore the low battery warnings long enough. One minute I was staring at output scrolling in the terminal. The next it was 8:47 AM and the sun was coming through the gap where the electrical tape peeled off the top corner of the blinds, a single bright stripe across the carpet that looked accusatory.

The sniffer ran all night. I could hear the fans on the desktop still spinning hard. That was the first thing I checked. Not my phone, not the time, not whether my body still functioned correctly. The sniffer.

I pulled myself upright. My neck made sounds it shouldn't make. The apartment smelled like what happens when you smoke a pack and a half in a sealed room and then sleep in it. Which is exactly what I did.

In daylight, my apartment looks like evidence. The two ashtrays, the Red Bull cans forming a small aluminum garden across the desk, the monitors still glowing their green-on-black into the morning like they'd been waiting for me to wake up. My jacket was on the floor. My shoes were still on. One of them, anyway. The other was by the door. I don't remember taking it off.

I limped to the desk and opened the sniffer output.

It caught it. All night. Every forty-seven minutes, like clockwork. But my sniffer does something Wireshark doesn't, because I wrote it to do something Wireshark doesn't. It doesn't just capture the packet. It maps the payload structure byte by byte and looks for repeating patterns.

The payloads aren't random.

I sat down. Stared at the screen. Scrolled through six captures and laid them side by side in a text editor.

Every payload starts with the same sixteen bytes. Identical across all six transmissions. That's a header. That's a session identifier. Someone isn't just pinging a server. Someone is maintaining a persistent session through my machine. An ongoing, authenticated channel that reconnects every forty-seven minutes to send structured data to a dead server in Romania.

That's not a thermostat. That's not a misconfigured IoT device. That's not malware in the usual sense, the kind that mines crypto or joins a botnet and doesn't care who you are. This is targeted. This is specific. This is for me.

My hands did the thing where they go slightly numb. Not shaking. Worse. Just... absent. Like they're not sure they belong to me right now.

I lit a cigarette. Reached into the pack and found air. Two filters left, and one of them was bent.

No cigarettes is an emergency. Not in the abstract sense. In the very concrete, very real sense that nicotine is the only chemical holding the architecture of my personality together and without it the whole structure starts listing sideways. I don't have a therapist anymore. I have Camels.

I stood up. Looked at the front door. The deadbolt was locked. The chain was on. I didn't remember putting the chain on, but that's muscle memory, not the other thing. Probably.

The walk to the corner store is four blocks.

Four blocks means leaving the apartment. Leaving the apartment means the sniffer runs without me watching it. The sniffer doesn't need me watching it. That's the entire point of writing a sniffer. But something about leaving it alone felt like leaving a child near a swimming pool. I know it's fine. My lungs don't agree.

I put on the other shoe. Found my wallet. Checked my phone.

The "You up?" text was still there from the unknown number. And the "Nvm." No new messages. I stared at both texts for longer than was healthy, then pocketed the phone and unchained the door.

Outside smelled like wet concrete and someone's dryer sheets. The sun was offensive. Not warm. Just bright in the way that light is bright when you've spent twelve hours in the dark, the kind of brightness that feels like it's making a point about your life choices.

A woman walked past with a golden retriever. The dog glanced at me. She didn't. A guy across the street was watering his lawn with one of those hose nozzles that has twelve spray settings that nobody uses because everyone just picks "jet" and calls it done. A car drove by playing something I almost recognized.

Normal. Everything was relentlessly, brutally normal.

This is the part that never gets easier. The transition. At 4 AM in a dark apartment, with packet captures on screen and a beacon firing every forty-seven minutes, the paranoia has a shape. It makes sense in its environment. Step outside into a Tuesday morning in spring and suddenly you're the variable that doesn't belong. Everyone else is walking dogs and going to work and watering lawns and you're the guy who spent all night building a custom packet sniffer because you think someone hacked your kernel.

I walked. The corner store was on Maple and 14th. I'd been going there for two years. The cashier's name was either Linda or Laura. I could never remember because I never looked at her nametag because looking at someone's chest is a thing I trained myself out of early and now I just avoid the whole region.

The bell on the door jingled. The fluorescent lights hummed that specific frequency that only exists in stores that sell cigarettes and energy drinks at 40% markup. I grabbed two packs of Camels and a Red Bull from the cooler.

Linda-or-Laura rang me up without looking at me. She was watching something on her phone propped behind the register. I paid cash. I always pay cash now. Not for any practical reason. If someone's in my kernel, they already know my purchase history from my browser. Cash just makes me feel like I have one transaction they can't see, and that feeling is worth the inconvenience.

She gave me change. Our hands almost touched. She still didn't look up.

On any other day I wouldn't have noticed. Today I cataloged it. Filed it. Added it to the evidence folder in my head labeled "Things That Are Probably Nothing But Also Could Be Something." The folder is getting full.

I walked out. Opened the first pack. Lit one on the sidewalk and felt the nicotine hit like a system reboot after a crash. Everything settled. The brightness became tolerable. My hands came back online.

I should have gone straight home.

Instead I walked two more blocks to the coffee shop on 16th. The one with the exposed brick and the pour-over menu that charges six dollars for what is functionally the same caffeine delivery as the gas station across the street but in a ceramic mug. I don't go there for the coffee. I go there because it has people in it. Humans. The kind you can look at without them being on a screen, and sometimes that contact is the thing that keeps the wires from crossing.

I ordered a black coffee. Large. The barista had a tattoo of a semicolon on her wrist. I knew what that meant and it made me like her immediately.

I sat down at a table near the wall. Back to the brick. Facing the door. This is not a conscious choice. This is something my body started doing about six months ago and I stopped fighting it because fighting your own reflexes is exhausting and I'm already tired.

My laptop was in my bag. I didn't plan to bring it. But not bringing it would mean leaving it in the apartment while I was gone, and the apartment would be empty, and my machine would be alone, beaconing to Romania without supervision. So it came with me. Like a pet that you can't board.

I opened it. The sniffer was still running on the desktop via SSH. I checked the log.

Three beacons while I was sleeping. Right on schedule. Forty-seven minute intervals.

Then a fourth.

I blinked. Scrolled. Read the timestamp three times.

The fourth beacon fired at 9:12 AM. Four minutes after I left the apartment. The previous one was at 8:38 AM. That's thirty-four minutes apart. Not forty-seven. Off-schedule. One extra transmission, four minutes after I walked out the door.

Like it knew.

Like something in my apartment registered that I was gone and immediately reported it.

I closed the laptop. Opened it. Closed it again. My coffee was getting cold and I hadn't touched it.

"That thing owe you money?"

I looked up. A guy at the next table. Mid-thirties, maybe. The kind of face you'd describe as "friendly" if you were writing a police report. Button-down shirt with the sleeves rolled up. A paperback book face-down on his table. He was smiling at me, the way people smile at strangers when they're being normal, which I wasn't.

"Sorry?"

"Your laptop." He nodded at it. "You keep opening and closing it like you're trying to decide whether to forgive it."

I almost laughed. Almost. What came out was closer to a single exhale through my nose.

"It's misbehaving," I said.

"They do that." He picked up his coffee. "I had one that started making a clicking sound. Took it to a repair place, the guy said the hard drive was dying. I said yeah, aren't we all."

I actually laughed at that one. Short. Surprised.

He extended his hand across the gap between our tables. "Cal."

"Ren."

His handshake was warm. Dry. The right amount of pressure. I file these things. Handshakes are metadata. Too firm means insecurity. Too soft means disinterest. Cal's was calibrated perfectly, which meant either he was genuinely comfortable in his own skin or he'd practiced.

"You come here a lot?" he asked. Not in a pickup line way. In the way of a person making conversation because the alternative is reading his paperback and he'd rather talk.

"Sometimes. When the apartment gets too..." I gestured vaguely.

"Small?"

"Loud," I said, and then wished I hadn't, because the apartment is functionally silent and the only noise in it is me and my machines and explaining what I meant by "loud" would require explaining things I wasn't ready to explain to a stranger named Cal on a Tuesday morning.

But Cal just nodded. Like he understood. People do that. Nod when they don't understand. But his nod had weight. Like maybe he actually did.

We talked for twenty minutes. He asked what I did. I said sales, which is technically true. He asked if the laptop was work. I said sort of. He asked if I was in security, and my stomach dropped half an inch.

"What makes you say that?"

"The way you look at it." He shrugged. "My cousin does cybersecurity. Same relationship with his laptop. Like it's a puzzle box that might explode."

Reasonable. Completely reasonable. I felt the tension release from my shoulders, a tension I hadn't noticed building, and that's worse than the tension itself. Not knowing when you're clenched.

"Something like that," I said.

Cal told me he was in town for work. Consulting, something vague. He liked the coffee here. He'd found it on a walk. He was staying at a hotel nearby but preferred working in places with ambient noise because silence made him think too much.

I recognized something in the way he said that last part. Not what he said. The way he meant it.

We exchanged numbers. He offered first, casual, the way people do when they're being friendly and there's no agenda. I gave him mine. My real number. The one attached to the phone that beacons to Romania every forty-seven minutes.

I didn't think about that until after he'd saved it and I was walking home.

The sun was higher now. The lawn-watering guy was gone. A kid rode by on a bike, no helmet, and I had the intrusive thought that he'd fall and crack his skull and it would be the most real thing to happen on this street all day.

He didn't fall. He just rode past. Normal. Everything still normal.

I got home. Unchained the door. Locked it behind me. The apartment smelled the same. The monitors glowed the same. My chair was where I left it, turned slightly to the side from when I stood up, and the indent in the couch was still warm, or I imagined it was still warm, and the difference between those two things is exactly the kind of thing I can't answer right now.

I sat down. Opened the sniffer.

The off-schedule beacon. 9:12 AM. Four minutes after I left. I pulled the payload.

Same sixteen-byte header. Same session ID. But the payload was shorter. Much shorter. The regular beacons carried between 400 and 600 bytes of structured data. This one carried 22 bytes.

Twenty-two bytes is enough for a timestamp and a boolean.

Left: true.

I stared at that thought. The thought I had just produced. That was my brain interpreting raw data through the lens of paranoia, assigning meaning to noise, seeing intent in entropy. A responsible person would recognize that. A sane person would close the laptop and go for a walk and call a friend and say "I think I need to sleep more."

I copied the payload into a hex editor and started mapping the byte structure.

Because what if I'm right.

The cursor blinked. The fan spun. Somewhere in the walls, the building's pipes ticked and groaned, the plumbing doing its thing, carrying water to people who were probably showering and brushing their teeth and starting their days like it was just a day.

I had Cal's number in my phone.

I had a beacon in my machine that knew when I left.

I had twenty-two bytes that might mean everything or might mean nothing, and no way to tell the difference except to keep pulling the thread until it either unraveled into something real or came apart in my hands entirely.

The cigarette burned. I didn't blink.

Forty-seven minutes until the next one.

More Chapters