RemusStealer / AnimateClipper / SessionGate — Fake Dev-Tool Sites (SEO + TDS)

A large malware-distribution ecosystem (Check Point Research, June 2026) that runs 100+ SEO-poisoned sites impersonating open-source developer/security tools (Ghidra, dnSpy, SpiderFoot, ILSpy, grpcurl, mqttexplorer, mfcmapi, CrystalDiskMark…). A CloudFront-hosted JavaScript layer turns a "Download" click into a handoff to a gated Traffic Distribution System (TDS) that delivers RemusStealer (20+ browsers, wallets, password managers, 2FA), AnimateClipper (clipboard wallet-address swapper), and SessionGate (heavily-obfuscated multi-stage loader). Defensive hunt & harden pack — no offensive code.
Threat
Fake dev-tool distribution ecosystem (SEO + TDS)
Severity
HIGH · STEALER + CRYPTO THEFT
Type
Infostealer · crypto clipper · multi-stage loader
Delivery
Spoofed tool sites → CloudFront JS → gated TDS
Targets
Developers, security researchers, IT/power users
Version
v0.2 · 2026-06-16
Author
HuntPack
01

Executive Summary

Check Point Research (June 2026) detailed a sprawling malware-distribution ecosystem that weaponizes the trust developers and security practitioners place in open-source tooling. The operators stood up 100+ websites impersonating popular open-source toolsGhidra, dnSpy, SpiderFoot, ILSpy, grpcurl, mqttexplorer, mfcmapi, winsetupfromusb, CrystalDiskMark, guiformat and more — meticulously cloned (real GitHub links, authentic design) and pushed up Google rankings via SEO poisoning. The campaign has been active since at least December 2025, with confirmed delivery from January 2026 and 5,000+ related VirusTotal submissions.

Clicking "Download" loads a CloudFront-hosted JavaScript staging layer that hands the visitor to a gated Traffic Distribution System (TDS). The TDS fingerprints and filters victims, then serves one of three payloads: RemusStealer, a newly-emerged infostealer that loots data from 20+ browsers including cryptocurrency wallets, password managers, and 2FA/authenticator apps; AnimateClipper, a clipboard hijacker that silently swaps copied wallet addresses for attacker-controlled ones; and SessionGate, a heavily-obfuscated multi-stage loader with one-time-key delivery and extensive anti-analysis/validation logic (combined with TDS-side gating, this makes retrieving the final payload very hard for analysts).

Defender priority: The victims here are often your own technical staff downloading "the tool they always use." Hunt Q1 (a freshly browser-downloaded dev-tool installer executing from Downloads) and Q2 (a non-browser process mass-reading browser credential/wallet stores — RemusStealer). Because the final payload is TDS-gated and rotates, anchor on the delivery lineage and the stealer/clipper behavior, not a fixed hash.

02

Source Review & Web Hunter Notes

TierSourceKey FindingCarry
1 · Vendor researchCheck Point Research — Impersonation, Click Hijacking & TDS100+ spoofed tool sites; CloudFront JS → TDS; RemusStealer/AnimateClipper/SessionGate; since Dec 2025yes
1 · NewsThe Hacker News — fake open-source tool sites rank high on GoogleSEO poisoning; tool list; TDS delivery; targeting of dev/security communityyes
2 · NewsCyberSecurityNews / Hackread / GBHackers / TechRadarGhidra/dnSpy/SpiderFoot impersonation; 5,000+ VT submissions; ad-revenue + malwarepartial

Decisions: behavior-first because the final payload is TDS-gated and rotates (no durable hash). Anchor on (1) the delivery lineage — a browser-downloaded "dev tool" run from Downloads, often via a CloudFront link; (2) RemusStealer's mass browser/wallet credential access; (3) AnimateClipper's clipboard-hijack persistence; (4) SessionGate's staged/obfuscated loader behavior. Spoofed domains rotate (100+), so treat them as a refreshable watchlist, not the primary signal. High relevance for orgs whose developers/SOC analysts pull these exact tools.

03

Hunt Brief & Attack Chain

Working hypothesis: A developer/analyst searches for a tool (e.g. dnSpy), lands on a spoofed top-ranked site, clicks Download → CloudFront JS → TDS serves a trojanized installer that runs from Downloads and deploys RemusStealer / AnimateClipper / SessionGate, leading to credential/wallet theft and clipboard hijacking.

StepBehaviorTelemetryHunt Angle
1 · SEO lureSpoofed tool site ranks high on GoogleProxy / browser historyN1
2 · TDS handoffCloudFront JS → gated TDS fingerprints visitorDNS; proxyN2; Q5
3 · DeliveryTrojanized "tool" installer written to Downloadsfile; ProcessRollup2Q1; N3
4 · RemusStealerMass read of browser creds / wallets / 2FAfile access; ProcessRollup2Q2
5 · AnimateClipperClipboard monitor swaps wallet addressespersistence; ProcessRollup2Q3
6 · SessionGateObfuscated multi-stage loader; one-time-key fetchProcessRollup2; netQ4; Q5
7 · Exfil / C2Stolen data + clipper config over webNetworkConnectIP4; DNSQ5; N2

Affected surface & telemetry

SurfaceRequired TelemetryPriorityGap Risk
Developer / analyst workstationsProcess lineage + file write/read eventsCriticalLow — process telemetry
Browser credential / wallet storesFile-access attribution (non-browser readers)HighMedium — needs file-read visibility
EgressDNS / proxy (CloudFront, TDS, C2)MediumMedium — CloudFront is shared/legit
PersistenceRun keys / scheduled tasksMediumLow
04

Consolidated IOC Table

The final payload is TDS-gated and rotates; the 100+ spoofed domains churn. The delivery lineage and the stealer/clipper/loader behaviors are the durable surface. Copy-ready blocks in §9.
TypeValueConfActionContext
BehaviorBrowser-downloaded "dev tool" installer run from \DownloadshighdetectDelivery — flagship
BehaviorNon-browser process mass-reading browser cred/wallet storeshighdetectRemusStealer
BehaviorClipboard-monitor persistence swapping wallet addressesmediumhuntAnimateClipper
BehaviorObfuscated multi-stage loader; one-time-key fetchmediumhuntSessionGate
Infra100+ spoofed tool domains; CloudFront JS staging; gated TDSmediumhuntRefreshable watchlist
05

ATT&CK Mapping

TacticTechniqueObserved BehaviorQuery / Control
Resource Dev / Initial AccessT1608.006 / T1189 — SEO poisoning / drive-bySpoofed tool sites ranked via SEON1, N2
ExecutionT1204.002 — User executes malicious fileTrojanized installer run from DownloadsQ1; N3
Credential AccessT1555.003 / T1539 — Browser creds / session cookiesRemusStealer loots 20+ browsers, wallets, 2FAQ2
Collection / ImpactT1115 / T1565 — Clipboard / data manipulationAnimateClipper swaps wallet addressesQ3
Defense Evasion / ExecutionT1027 / T1140 — Obfuscation / multi-stage loadSessionGate staged, one-time-keyQ4
PersistenceT1547.001 / T1053.005 — Run key / taskStealer/clipper auto-startQ6
Command & Control / ExfilT1071 / T1041 — Web C2 / exfilStolen data over web; TDS/CloudFrontQ5; N2
06

Native Audit-Log Hunts

HuntSourceLogicResponse
N1 · Spoofed-site visitsProxy / DNS / browser historyVisits to look-alike tool domains (typo/extra-word variants of ghidra/dnspy/spiderfoot/ilspy…) not the official repo/hostBlock domain; warn user
N2 · TDS / CloudFront deliveryProxyA "tool" download served via a CloudFront JS handoff / TDS redirect chain rather than GitHub releasesBlock; pull the file
N3 · Downloads executionEDR / processExecution of a just-downloaded installer from \Downloads with a dev-tool name but no valid/expected publisher signatureIsolate; triage
N4 · Browser cred-store accessEDR file auditNon-browser processes opening Login Data / wallet / authenticator filesTreat as stealer; reset creds
07

CrowdStrike LogScale CQL Hunt Queries

Pick your tenant's cloud first — every "Open in Falcon" button below uses this selection.
Field names validated against the Falcon event reference; process hunts include SyntheticProcessRollup2. The final payload is TDS-gated and rotates — Q1 (delivery lineage) and Q2 (stealer file access) are the durable anchors. Baseline your sanctioned dev-tool installers to keep FPs low.
Q1 · Browser-downloaded dev-tool installer executing from Downloads
CONF HIGHFP LOW-MEDCOST LOW

Looks for: a process running from \Downloads whose name impersonates one of the spoofed tools, parented by a browser. Accomplishes: catches the trojanized-installer delivery. FP: low-med — legit users do download these; flag the Downloads path + unsigned/unexpected publisher and correlate to N2/N3.

// HUNT: spoofed dev-tool installer executed from Downloads (browser-delivered)
// MITRE: T1204.002, T1189 | CONF: high  FP: low-med  COST: low
// FP NOTES: legit downloads exist; flag \Downloads path + browser parent + unsigned
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| ImageFileName=/\\(Downloads|Temp)\\/i
| FileName=/^(ghidra|dnspy|ilspy|spiderfoot|grpcurl|mqttexplorer|mfcmapi|winsetupfromusb|crystaldiskmark|guiformat).*\.(exe|msi)$/i
| ParentBaseFileName=/^(chrome|msedge|firefox|brave|opera|explorer)\.exe$/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, FileName, ImageFileName, CommandLine], limit=200)
Q2 · RemusStealer — non-browser process reading browser cred/wallet stores
CONF HIGHFP MEDCOST MED

Looks for: a non-browser process touching many browser credential / wallet / authenticator files. Accomplishes: RemusStealer's core looting. FP: medium — some backup/security tools; require a high distinct-file count and a non-browser, user/temp-path image.

// HUNT: RemusStealer mass browser/wallet credential access
// MITRE: T1555.003, T1539 | CONF: high  FP: medium  COST: med
// TUNING: require many distinct targets + non-browser image; baseline backup/security tools
#event_simpleName=/FileOpenInfo/
| TargetFileName=/(\\User Data\\.+\\(Login Data|Web Data|Cookies|Local State)|\\wallet\.dat|\\Ethereum\\keystore|MetaMask|Local Extension Settings|Authy|\\2fa)/i
| ImageFileName!=/\\(chrome|msedge|firefox|brave|opera|opera_gx)\.exe$/i
| groupBy([ComputerName, ImageFileName], function=count(TargetFileName, distinct=true, as=files))
| files >= 6
| table([ComputerName, ImageFileName, files], limit=200)
Q3 · AnimateClipper — clipboard-hijack persistence
CONF MEDFP MEDCOST LOW

Looks for: a user/temp-path binary (delivered alongside the installer) persisting via Run key / task — the clipper that swaps wallet addresses. FP: medium — clipboard API use isn't in standard telemetry, so anchor on the lineage + persistence; correlate to Q1.

// HUNT: AnimateClipper persistence (clipboard wallet-swapper)
// MITRE: T1115, T1547.001 | CONF: medium  FP: medium  COST: low
// TUNING: clipboard reads are not in standard telemetry; anchor on Downloads-spawned
//         persistence and correlate to Q1; review for crypto-address swapping at IR
#event_simpleName=/AsepValueUpdate|ScheduledTaskRegistered|RegGenericValueUpdate/
| RegStringValue=/\\(Downloads|AppData|Temp|ProgramData)\\.+\.(exe|scr|com)$/i
| table([@timestamp, ComputerName, UserName, RegObjectName, RegStringValue], limit=200)
Q4 · SessionGate — staged loader spawning script/LOLBin children
CONF MEDFP MEDCOST LOW

Looks for: a Downloads/Temp-path installer spawning shells / LOLBins / script hosts (the multi-stage SessionGate loader). FP: medium — correlate to Q1 on the same host; flag the Downloads-path parent.

// HUNT: SessionGate multi-stage loader child execution
// MITRE: T1027, T1140 | CONF: medium  FP: medium  COST: low
// TUNING: correlate to Q1; flag Downloads/Temp-path parent spawning shells/LOLBins
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| ParentImageFileName=/\\(Downloads|Temp|AppData)\\/i
| FileName=/^(powershell|pwsh|cmd|wscript|cscript|mshta|rundll32|regsvr32|conhost)\.exe$/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine], limit=200)
Q5 · TDS / CloudFront delivery & stealer C2 egress
CONF MEDFP MEDCOST MED

Looks for: a Downloads/Temp-path or non-browser process making outbound web connections (TDS one-time-key fetch / stealer exfil). FP: medium — CloudFront is shared/legit; flag the non-browser, user-path image and correlate to Q1/Q2.

// HUNT: TDS one-time-key fetch / stealer exfil from a user-path process
// MITRE: T1071, T1041 | CONF: medium  FP: medium  COST: med
// TUNING: CloudFront is shared; flag non-browser user-path image; correlate to Q1/Q2
#event_simpleName=NetworkConnectIP4
| ContextImageFileName=/\\(Downloads|Temp|AppData|ProgramData)\\/i
| ContextImageFileName!=/\\(chrome|msedge|firefox|brave|opera)\.exe$/i
| in(RemotePort, values=[80, 443, 8080, 8443])
| groupBy([ComputerName, ContextImageFileName, RemoteAddressIP4], function=count())
| table([ComputerName, ContextImageFileName, RemoteAddressIP4, _count], limit=200)
Q6 · Persistence for the stealer/clipper
CONF MED-HIGHFP LOW-MEDCOST LOW

Looks for: Run keys / scheduled tasks pointing at a user/temp-path binary created in the same window as the download. FP: low-med — correlate to Q1; flag Downloads/AppData targets.

// HUNT: stealer/clipper auto-start persistence
// MITRE: T1547.001, T1053.005 | CONF: med-high  FP: low-med  COST: low
// TUNING: correlate to Q1; legitimate dev tools rarely auto-start from Downloads/AppData
#event_simpleName=/AsepValueUpdate|ScheduledTaskRegistered/
| RegStringValue=/\\(Downloads|AppData\\Local\\Temp|ProgramData)\\.+\.(exe|scr|dll|com)/i
| table([@timestamp, ComputerName, UserName, RegObjectName, RegStringValue], limit=200)
08

CrowdStrike Custom IOA Recommendations

IOA NameField PatternsBenign ExclusionsDeployment Path
FakeTool — browser→Downloads installerParent chrome/msedge/firefox.exe; Child a dev-tool-named .exe/.msi in \Downloads, unsigned/unexpected publisherSanctioned internal tool distribution (allow-list signers)Endpoint Security → Custom IOA → Process Creation, Detect
FakeTool — browser cred-store theftNon-browser image reading multiple Login Data/wallet/2FA filesVetted backup/security toolingCustom IOA → File access, Detect+Block
Q2 (browser/wallet theft) is a strong, generalizable promotion — it catches RemusStealer and most other infostealers. Q1 is high-value where developers/analysts are common. The spoofed-domain list is a refreshable network watchlist (N1/N2), not an IOA.
09

Machine-Readable IOC Appendix

Grouped IOC Quick-Copy

One-click blocks for detection. The TDS-gated payload + 100+ domains rotate — behavior is the durable surface. Add per-incident atoms (sample hashes, resolved C2, confirmed spoof domains) during triage.

Behavioral Signaturesdetection logic
Browser (chrome/edge/firefox/brave) -> dev-tool-named installer executing from \Downloads (unsigned/unexpected publisher)
Non-browser process reading many browser Login Data / Web Data / Cookies / wallet.dat / MetaMask / Authy files (RemusStealer)
User/temp-path binary persisting via Run key / scheduled task (clipper/stealer)
Downloads/Temp-path installer spawning powershell/cmd/mshta/rundll32 (SessionGate staged loader)
Non-browser user-path process beaconing 80/443 (TDS one-time-key fetch / exfil)
Tool "download" served via a CloudFront JS handoff / TDS redirect instead of GitHub releases
Impersonated Tools (lure set)SEO targets
# Open-source tools whose download sites are being spoofed (100+ domains, churning):
ghidra
dnSpy
SpiderFoot
ILSpy
grpcurl
mqttexplorer
mfcmapi
winsetupfromusb
CrystalDiskMark
guiformat
# Rule: only fetch these from the official GitHub repo / vendor release page.
# Treat any other top-ranked "download" domain for these names as suspect.
Named Payloadscampaign
RemusStealer   # infostealer: 20+ browsers, crypto wallets, password managers, 2FA/authenticator apps
AnimateClipper # clipboard hijacker: swaps copied crypto wallet addresses for attacker-controlled ones
SessionGate    # heavily-obfuscated multi-stage loader, one-time-key delivery, anti-analysis + TDS gating
# Delivery: SEO-poisoned spoofed tool sites -> CloudFront JS staging -> gated TDS -> payload
# Active since ~Dec 2025; delivery confirmed Jan 2026; 5,000+ related VirusTotal submissions
# Tracking: Check Point Research "Impersonation, Click Hijacking, and TDS"
Hardening / Blockdefense-in-depth
Developer guidance: fetch tools ONLY from the official GitHub repo / vendor page (bookmark them)
Block known spoofed tool domains at proxy/DNS; alert on tool-name look-alike domains (N1/N2)
App control (WDAC/AppLocker): constrain execution from \Downloads on dev/analyst hosts
Promote Q2 (browser/wallet cred theft) to Detect+Block; promote Q1 where devs are common
Browser-stored-credential + wallet hygiene; hardware 2FA where possible
Egress: flag non-browser user-path processes beaconing 80/443; baseline CloudFront use
10

Hardening — Tiered & Deployable

Cut the trusted-download lure, constrain Downloads execution, and protect browser secrets.

Immediate — Break the lure
  • Developer guidance: pull tools only from the official GitHub repo / vendor page (bookmark them)M1017. The campaign relies on a wrong-site download — the cheapest fix.
  • Block known spoofed tool domains; alert on look-alike domainsM1021 / M1037. Feeds N1/N2.
  • Promote Q2 (browser/wallet theft) to Detect+BlockM1040. Generalizes to most stealers.
  • App control: constrain execution from \Downloads on dev/analyst hostsM1038. Breaks Q1.
Near term — Constrain & observe (pilot first)
  • WDAC/app allowlisting for dev tooling; block unsigned installersM1045 / M1038.
  • Browser-credential + wallet hygiene; hardware 2FAM1032. Blunts what RemusStealer can monetize.
  • Egress control: flag non-browser user-path processes beaconing the webM1037. Feeds Q5.
Strategic — Reduce stealer surface
  • Internal vetted-tool mirror/repo for developers & SOC analystsM1051. Removes the need to Google-and-download.
  • Application allowlisting fleet-wide; default-deny user-path executionM1038.
  • Phishing-resistant MFA + session-token protections to limit stolen-cookie reuseM1032.
11

Containment Runbook

PhaseActionsOwnerEvidence
IsolateNetwork-contain the host; preserve the downloaded installer + any dropped binaries + browser profileSOC L2Containment timestamp; Q1 event; sample
TriageMap download → execution → stealer file access → persistence → egress; identify which browsers/wallets/2FA were read; pull the spoof domain + TDS chainIRProcess tree; file-access list; domains
EradicateRemove the installer + stealer/clipper/loader + persistence; block the spoof domain/C2IRRemoval log
RecoverAssume credential + session-cookie + wallet compromise: force-reset passwords, revoke browser sessions/tokens, rotate any seed phrases / move funds, re-enroll 2FA; reimage if loader ranIR + IT + userCred reset; token revoke; wallet moves
HardenBlock spoof domains; app control on Downloads; promote Q1/Q2; brief the dev/SOC teamsDetection EngIOA enabled; domain blocks
Because RemusStealer targets crypto wallets + clipboard-swapping (AnimateClipper), treat any wallet activity on the host as untrusted until keys are rotated and balances verified — clipboard swaps can have already redirected funds.
12

Detection Coverage Map & Validation

TechniqueBehaviorCQLIOACoverage
T1204.002 / T1189Trojanized installer from DownloadsQ1IOA-1Good + app control
T1555.003 / T1539RemusStealer browser/wallet theftQ2IOA-2Good
T1115 / T1547.001AnimateClipper clipboard hijackQ3Partial clipboard not in telemetry
T1027 / T1140SessionGate staged loaderQ4Partial correlate to Q1
T1071 / T1041TDS fetch / exfilQ5Partial + proxy (N2)
T1547.001 / T1053.005PersistenceQ6Good
T1608.006SEO-poisoned spoofed sitesGAP proxy/DNS watchlist (N1)

Validation gates: (1) confirm process + file-access + DNS/proxy telemetry; (2) baseline sanctioned dev-tool installers + their signers + any backup/security tools that read browser files; (3) lab-test a benign download-and-run of a real tool (tune Q1 to require unsigned/unexpected publisher) and a benign browser-profile read (must NOT fire Q2 below the distinct-file threshold); (4) block known spoof domains + promote Q1/Q2. No durable payload hash — anchor on behavior.

13

Hunt Summary Ticket

TITLE:        Hunt — Fake Dev-Tool Sites (SEO+TDS): RemusStealer / AnimateClipper / SessionGate
SEVERITY:     High (credential + crypto-wallet theft; targets developers/analysts)
SCOPE:        Developer/SOC/IT workstations; browser secret stores; egress
HYPOTHESIS:   A user downloads a "dev tool" from a spoofed top-ranked site -> CloudFront JS -> TDS
              -> trojanized installer runs from Downloads -> RemusStealer (browser/wallet/2FA theft)
              + AnimateClipper (clipboard wallet-swap) + SessionGate (multi-stage loader).
QUERIES RUN:  Q1 Downloads installer (IOA) | Q2 browser/wallet theft (IOA) | Q3 clipper persistence |
              Q4 SessionGate loader | Q5 TDS/exfil egress | Q6 persistence
              + Native N1-N4 (spoofed-site visits, TDS/CloudFront delivery, Downloads exec, cred-store access)
DO FIRST:     Q1, Q2 -- escalate any browser/wallet mass-read on a non-IT host
FINDINGS:     <pending analyst execution>
GAPS:         SEO/spoof delivery (proxy/DNS); clipboard reads not in telemetry; payload TDS-gated/rotating
ACTIONS:      Dev-tool source guidance; block spoof domains; app control on Downloads; promote Q1/Q2;
              assume cred+cookie+wallet compromise on any hit (reset/rotate/revoke)
OWNER:        HuntPack
VERSION:      v0.2 - 2026-06-16
14

Changelog

v0.42026-07-24CQL correctness pass. All table() calls now carry an explicit row limit: the default is 200 and truncation is silent, so a capped result was indistinguishable from a complete one. Atomic-IOC sweeps (filters over 5+ hashes or C2 IPs) use limit=max so a wide infection is never silently under-scoped; behavioural hunts use limit=200, where exceeding the cap indicates the query needs tuning. Where present, event names that do not exist in the Falcon data model were corrected (e.g. ServiceInstalled is a Sysmon concept, not a Falcon event; ElfFileWritten is ELFFileWritten) — such queries could never return a row. No detection logic, fields, or IOCs changed.
v0.32026-06-29CQL syntax review (crowdstrike-logscale-v3): ImageFileName→ContextImageFileName on network event and regex-on-numeric RemotePort→in() (Q5).
v0.22026-06-16Re-published with refreshed metadata — index now shows Updated 2026-06-16 over the original Added date (2026-06-12). No detection-content changes.
v0.12026-06-12Initial pack, built in the review-v2 gold layout (fixed left-sidebar scrollspy TOC, collapsible, cloud selector inside the CQL section, per-card Copy/Open-in-Falcon, Grouped IOC Quick-Copy grid, coverage+validation, .ticket). Research from Check Point Research + The Hacker News (June 2026): 100+ SEO-poisoned spoofed open-source tool sites → CloudFront JS → gated TDS delivering RemusStealer (browser/wallet/2FA theft), AnimateClipper (clipboard wallet-swap), and SessionGate (obfuscated multi-stage loader). 6 CQL + 4 native hunts, 2 IOA candidates; behavior-anchored (TDS-gated payload, churning domains).
15

References

TierSourceUsed For
1Check Point Research — Impersonation, Click Hijacking, and TDSEcosystem, TDS, RemusStealer/AnimateClipper/SessionGate, spoofed tools
1The Hacker News — Fake sites mimicking open-source tools rank high on GoogleSEO poisoning, tool list, TDS delivery, dev/security targeting
2CyberSecurityNews · Hackread · Check Point 8th June Threat Intel ReportCorroboration; 5,000+ VT submissions; CloudFront staging

HuntPack v0.2 · Fake Dev-Tool Sites (RemusStealer / AnimateClipper / SessionGate) · Generated 2026-06-12 · Updated 2026-06-16 · Defensive use only — no offensive code. The final payload is TDS-gated and the 100+ spoofed domains churn, so anchor on the delivery lineage (browser → Downloads installer) and the stealer/clipper behavior, not a fixed hash. Validate field names and baseline sanctioned dev-tool installers before promoting any query.