A family friend — I'll call her by her real first name, Elizabeth, since she's comfortable with that — messaged me about a Windows 11 laptop acting strangely: a security alert she didn't fully understand, a browser that stopped opening, and a growing list of things that felt suspicious but weren't clearly connected. This is a walkthrough of how that got diagnosed properly: what turned out to be a real, multi-stage infection, and what turned out to be nothing at all.

The point of writing this up isn't the malware itself — the specific trojan family isn't rare. It's the method: verify before you conclude, treat every claim (including ones from other AI tools) as something to check, and resist the pull to connect unrelated symptoms into one dramatic story when the boring, separate explanations fit the evidence better.

The presenting symptoms

Windows Security showed two "Threat quarantined" events and, more importantly, two entries marked Remediation incomplete — Abandoned: Windows Defender had found something malicious but hadn't finished removing it. Around the same time, a browser popup appeared referencing a missing file, and Elizabeth had separately noticed some odd account activity that felt connected, but wasn't confirmed to be.

Working principle
An "abandoned" remediation status is a to-do item, not a resolution. It means the antivirus saw the threat and couldn't fully act on it — usually because the file was in use, or the infection actively resists in-session removal.

Diagram: how the infection actually worked

Windows Defender's detail view named the threat and its file path directly: Trojan:Win32/Posilod.CA!cl at C:\ProgramData\OpenJDM\jli.dll. The folder name is the tell — "OpenJDM" mimics a legitimate Java Development Kit install, but it's not a real, standard Java folder. This is a known technique called DLL side-loading: drop a malicious file with the exact name a legitimate program expects, next to (or instead of) a fake copy of that legitimate program, so the malicious file gets loaded automatically.

Fake folder created C:\ProgramData\OpenJDM Malicious DLL placed jli.dll (side-load target) jstat.exe launches, loads jli.dll (side-loading trigger) Defender detects quarantines jli.dll Visible symptom "jli.dll not found" popup
FIG. 1 — The fake OpenJDM folder exists solely to make jli.dll look legitimate when jstat.exe tries to load it.

Once Defender quarantined jli.dll, the file was gone — but the thing trying to launch it wasn't. That's why a "jstat.exe – jli.dll was not found" error kept appearing on browser startup: a leftover, orphaned startup entry was still trying to run a file that no longer existed. Removing the visible popup meant finding and deleting that entry, not just the DLL Defender had already handled.

Standard remediation sequence

Before touching anything else, the base cleanup followed Microsoft's own layered approach rather than any single tool:

  1. Microsoft Defender Offline scan — reboots into a minimal pre-Windows environment so nothing already running can hide from the scanner.
  2. Microsoft Safety Scanner — an independent, portable second-opinion engine from Microsoft, run alongside Defender rather than replacing it.
  3. Malwarebytes (free) — an on-demand cleanup pass specifically to catch anything the first two missed.
What this sequence doesn't do
None of these three tools reliably clean up orphaned autostart entries — the registry keys and scheduled tasks left behind after the file they pointed to is already gone. That required a separate, manual pass.

Reading the machine directly: parsing Autoruns by hand

Sysinternals Autoruns lists every program configured to start automatically — Run keys, scheduled tasks, services, browser extensions, all of it. Elizabeth exported her full Autoruns snapshot as a .arn file and sent it over. The catch: .arn isn't plain text. It's an OLE compound document — the same binary container format used by old .doc files — with a separate internal stream for every field of every entry.

Rather than eyeballing it in the Autoruns UI, I instructed Claude AI to write a short script to parse it directly:

import olefile
ole = olefile.OleFileIO('LOVEELIZABETH.arn')
 
# Every entry is stored as Items/<index>/<field>,
# UTF-16LE-encoded with a 2-byte length prefix
def read_str(path):
    data = ole.openstream(path).read()
    return data[2:].decode('utf-16le', errors='ignore').rstrip('\x00')
 
# → 1,843 autorun entries extracted and searched programmatically

That gave a clean, searchable list of all 1,843 entries — confirming OpenJDM and jli.dll were already gone, and surfacing three scheduled tasks Defender had never flagged at all:

TASK NAME TARGET PATH STATUS IAmNotWorthIt ...\6361b7d8...\pythonw.exe File not found KavabangaTurtleNinjas ...\HgPcYUsp3Fy...\pythonw.exe File not found RickisUpdate ...\6361b7d8...\pythonw.exe File not found
FIG. 2 — Three scheduled tasks, all launching pythonw.exe from randomly-named ProgramData folders. "File not found" here means the payload already ran and deleted itself.

This pattern — a random hex-named folder inside ProgramData, pythonw.exe as the launcher (it runs without a visible console window), and unsettling, deliberately memorable task names — matches documented Python-based loader techniques where the payload self-deletes after running once, leaving only the scheduled-task registration behind. "File not found" doesn't mean harmless; it can mean the malware already did its job and cleaned up after itself.

Removing these required opening Task Scheduler directly and deleting each task by name — no antivirus scan alone was going to catch registration entries pointing at files that no longer existed.

Separating signal from noise

Once something genuinely malicious is confirmed, it's tempting to treat every subsequent odd thing as part of the same story. Three things came up that looked suspicious on the surface but checked out as unrelated and benign once verified individually:

CLAIM

A device labeled "iPhone – La Mesa" appeared in account activity. Find My Device / account activity logs surface any linked device's location — this is the feature working normally, not an intrusion signal.

CLAIM

Chrome opened into an unfamiliar browser profile. Chromium browsers remember the last-used profile and can default to it after an abrupt shutdown — no account compromise required.

CLAIM

A neighbor's Wi-Fi network appeared in the network list. Every Wi-Fi device lists every nearby network by design. This is not evidence of surveillance.

CLAIM

"AI-researched" repair instructions from another source. Verified independently against Microsoft documentation and security research rather than trusted at face value — most of it held up; one diagnosis (a specific error code tied to a specific symptom) didn't match documented behavior and was flagged before being acted on.

The hardware red herring

The most instructive false lead: using Windows Magnifier (Win + Plus) to zoom in reliably closed every open Chrome window. Given everything else happening on the machine, the obvious hypothesis was "part of the infection." It wasn't.

The laptop's Autoruns export also showed Intel Arc integrated graphics components. Intel's own community forum has an active, documented bug: the Arc driver can crash during Windows-key and focus-transition events, triggering a full Desktop Window Manager reset — which takes GPU-accelerated applications down with it. Chrome is heavily GPU-accelerated. Magnifier's full-screen mode is precisely the kind of Windows-key-driven compositor transition the bug report describes.

Why this distinction mattered
Persistence-layer malware (the kind found here) is built to run quietly in the background — it has no reason to hook a specific accessibility feature's keyboard shortcut. A reproducible, input-triggered crash is a UI/driver-layer symptom, which pointed toward a driver bug rather than the infection, and the fix (update the graphics driver) was completely different from anything in the malware remediation.

Outcome

End state: the original DLL side-load was already quarantined by Defender; the three orphaned scheduled tasks were located by parsing the raw Autoruns data and removed manually from Task Scheduler; three unrelated "suspicious" observations were checked and ruled out individually rather than folded into the malware narrative; and a genuinely separate hardware bug was correctly isolated from the security investigation and pointed at a driver update instead of another malware scan.

Key takeaways

01

"Remediation abandoned" is a to-do, not a resolution. Antivirus status messages describe what was attempted, not what's guaranteed clean.

02

Automated tools miss orphaned persistence. A scan can clear the payload and still leave the thing that launched it behind.

03

Raw data beats a UI when the UI won't show you everything. Parsing the binary log directly surfaced three threats no scan had flagged.

04

Not every odd symptom is the same story. Verifying each claim independently prevented real time being spent chasing a hardware bug as if it were malware.

Appendix: tools & terminology referenced above

A quick-reference glossary and comparison for readers who want to understand what each tool in this case study actually is, and how the surrounding options in that category stack up.

What each Microsoft/security tool actually is

Microsoft DefenderConsumer · free

The built-in, always-on antivirus included with every Windows 10/11 installation. Provides real-time file and process scanning, cloud-delivered protection, and the pre-boot "Offline" deep scan used in this case study. This is what actually caught the initial infection here.

Microsoft Defender for EndpointEnterprise · licensed

A separate, unrelated-in-scope product built for IT and security teams managing many machines at once — not something a home user installs individually. It adds endpoint detection & response (EDR), fleet-wide threat hunting, attack surface reduction policies, and centralized incident response, typically bundled into Microsoft 365 E5 or sold standalone. It shares a detection engine with consumer Defender but serves organizations, not individual laptops like the one in this case study.

Microsoft Defender OfflineFeature within consumer Defender

Reboots the machine into a minimal environment outside the normal Windows session, so malware that hides while Windows is running has nowhere to hide. No internet disconnection required — "offline" describes the scan environment, not your network connection.

Microsoft Safety Scanner (MSERT)Free · portable

A standalone, independent second-opinion scanner published directly by Microsoft. No installation required; each download expires after 10 days, so it's meant for one-time use, not ongoing protection.

MalwarebytesThird-party

Cleanup-focused rather than prevention-focused by default. The free tier is on-demand only — no background protection — designed as a second-opinion scanner to run alongside a real-time antivirus, exactly the role it played here. Paid tiers add real-time protection and a bundled VPN.

Browser comparison: privacy and download safety

BrowserBuilt-in VPNMalicious download protectionStrengthWeakness
Microsoft EdgeNoSmartScreen — tests highest of the group, ~97–100% Tightest integration with Windows Defender's threat signals Default telemetry/data collection is above average
Google ChromeNoGoogle Safe Browsing — strong, ~86–99% Widest extension support, fast, well-tested Built by an advertising company; weakest privacy defaults
Mozilla FirefoxYes — free, 50GB/mo capUses Google Safe Browsing list — tests slightly lower, ~72–78% Strong tracking protection, independent nonprofit backing Built-in VPN is browser-only, not device-wide, and region-limited
BraveYes — paid, device-wideChromium-based Safe Browsing Aggressive default ad/tracker blocking, no setup needed VPN is a separate $9.99/mo product, not free
DuckDuckGo (browser)NoChromium/Safe Browsing-based Simple, minimal-config privacy for non-technical users No built-in VPN — does not hide IP address
OperaYes — free, unlimited dataStandard phishing/malware filtering Free VPN with no signup, no data cap No kill switch; only ~3 free server regions; browser-only

VPN comparison: what actually hides an IP address

A browser VPN, however good, only wraps traffic from that one browser. Everything below is a real, device-wide comparison for anyone whose goal is genuinely hiding their IP address across every app, not just one browser tab.

VPNCoverageFree tierEntry priceStrengthWeakness
Proton VPNWhole deviceYes — unlimited data, no time limit~$2.99–4.99/mo (2-yr plan) Best real free tier in the industry; Swiss jurisdiction, audited no-logs Free tier limited to ~3 server locations, slower at peak times
MullvadWhole deviceNoFlat €5/mo (~$5.80) — one price No email required — random account number, cash/crypto payment accepted Smaller server network; not built for streaming unblocks
NordVPNWhole deviceNo~$3.49/mo (2-yr plan) Fastest speeds in most 2026 tests; 6th independent no-logs audit passed Price increases significantly at renewal
SurfsharkWhole deviceNo~$1.99–2.49/mo (2-yr plan) Cheapest option, unlimited simultaneous devices Netherlands-based; some audits flagged brief IP logging
Brave VPNWhole deviceNo$9.99/mo or $99.99/yr Real system-wide VPN, not just browser traffic Priced like a standalone VPN because it functionally is one
Firefox built-in VPNBrowser onlyYes — free, 50GB/moFree-only, no paid tier yet Zero extra cost, easiest on-ramp for Firefox users Doesn't protect apps outside the browser; US/UK/FR/DE only so far
Reading these tables
None of this changes the malware remediation above — a VPN hides network traffic, it doesn't detect or remove a file already on disk, and a browser's download filter is a second layer of defense, not a replacement for verifying you're on the software vendor's real domain before downloading anything.

Need something diagnosed properly?

Security audits, malware remediation, or a web build that treats both as first-class requirements from day one.

Get in touch →