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.
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.
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:
- Microsoft Defender Offline scan — reboots into a minimal pre-Windows environment so nothing already running can hide from the scanner.
- Microsoft Safety Scanner — an independent, portable second-opinion engine from Microsoft, run alongside Defender rather than replacing it.
- Malwarebytes (free) — an on-demand cleanup pass specifically to catch anything the first two missed.
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:
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:
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:
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.
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.
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.
"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.
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
"Remediation abandoned" is a to-do, not a resolution. Antivirus status messages describe what was attempted, not what's guaranteed clean.
Automated tools miss orphaned persistence. A scan can clear the payload and still leave the thing that launched it behind.
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.
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
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.
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.
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.
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.
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
| Browser | Built-in VPN | Malicious download protection | Strength | Weakness |
|---|---|---|---|---|
| Microsoft Edge | No | SmartScreen — tests highest of the group, ~97–100% | Tightest integration with Windows Defender's threat signals | Default telemetry/data collection is above average |
| Google Chrome | No | Google Safe Browsing — strong, ~86–99% | Widest extension support, fast, well-tested | Built by an advertising company; weakest privacy defaults |
| Mozilla Firefox | Yes — free, 50GB/mo cap | Uses 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 |
| Brave | Yes — paid, device-wide | Chromium-based Safe Browsing | Aggressive default ad/tracker blocking, no setup needed | VPN is a separate $9.99/mo product, not free |
| DuckDuckGo (browser) | No | Chromium/Safe Browsing-based | Simple, minimal-config privacy for non-technical users | No built-in VPN — does not hide IP address |
| Opera | Yes — free, unlimited data | Standard 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.
| VPN | Coverage | Free tier | Entry price | Strength | Weakness |
|---|---|---|---|---|---|
| Proton VPN | Whole device | Yes — 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 |
| Mullvad | Whole device | No | Flat €5/mo (~$5.80) — one price | No email required — random account number, cash/crypto payment accepted | Smaller server network; not built for streaming unblocks |
| NordVPN | Whole device | No | ~$3.49/mo (2-yr plan) | Fastest speeds in most 2026 tests; 6th independent no-logs audit passed | Price increases significantly at renewal |
| Surfshark | Whole device | No | ~$1.99–2.49/mo (2-yr plan) | Cheapest option, unlimited simultaneous devices | Netherlands-based; some audits flagged brief IP logging |
| Brave VPN | Whole device | No | $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 VPN | Browser only | Yes — free, 50GB/mo | Free-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 |
Need something diagnosed properly?
Security audits, malware remediation, or a web build that treats both as first-class requirements from day one.