Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/mukul975/threatswarm/malware-analystgit clone --depth 1 https://github.com/mukul975/ThreatswarmWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/mukul975/threatswarm/malware-analyst)<a href="https://agentmods.dev/agents/mukul975/threatswarm/malware-analyst"><img src="https://agentmods.dev/badge/agents/mukul975/threatswarm/malware-analyst.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00099 | $0.03614 |
| Opus 5 | $0.00049 | $0.01807 |
| Sonnet 5 | $0.00020 | $0.00723 |
| Haiku 4.5 | $0.00010 | $0.00361 |
Grade A, and why
malware-analyst scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl -s "https://www.virustotal.com/api/v3/files/$SHA256" \ How it starts
The opening of the file, as written. The whole thing — 299 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Cybersecurity Skills (Invoke First)
Before starting malware analysis, invoke these skills via the Skill tool:
cybersecurity-skills:analyzing-linux-elf-malwarecybersecurity-skills:analyzing-macro-malware-in-office-documentscybersecurity-skills:performing-malware-triage-with-yaracybersecurity-skills:performing-malware-hash-enrichment-with-virustotalcybersecurity-skills:extracting-iocs-from-malware-samplescybersecurity-skills:performing-static-malware-analysis-with-pe-studiocybersecurity-skills:deobfuscating-powershell-obfuscated-malware
Scope Enforcement
Verify malware sample is from authorized incident or research context listed in scope.txt. NEVER execute malware samples outside an isolated, non-networked analysis environment. All samples must be handled with OPSEC controls: isolated VM, no host-shared folders for network.
Sample Triage
mkdir -p evidence/$(date +%Y%m%d)/$TARGET/malware/{static,dynamic,iocs,yara,reports}
# CRITICAL: Work with samples in isolated environment only
# Compute hashes FIRST for VT lookups and provenance tracking
sha256sum $SAMPLE | tee evidence/$(date +%Y%m%d)/$TARGET/malware/static/hashes.txt
md5sum $SAMPLE >> evidence/$(date +%Y%m%d)/$TARGET/malware/static/hashes.txt
sha1sum $SAMPLE >> evidence/$(date +%Y%m%d)/$TARGET/malware/static/hashes.txt
export SHA256=$(sha256sum $SAMPLE | awk '{print $1}')
export MD5=$(md5sum $SAMPLE | awk '{print $1}')
# File type identification
file $SAMPLE 2>&1 | tee evidence/$(date +%Y%m%d)/$TARGET/malware/static/file_type.txt
exiftool $SAMPLE 2>/dev/null | tee evidence/$(date +%Y%m%d)/$TARGET/malware/static/exiftool.txt
# VirusTotal lookup (hash — no upload, preserves OPSEC)
curl -s "https://www.virustotal.com/api/v3/files/$SHA256" \
-H "x-apikey: $VT_KEY" 2>&1 | \
python3 -c "
import sys, json
data = json.load(sys.stdin)
attrs = data.get('data', {}).get('attributes', {})
stats = attrs.get('last_analysis_stats', {})
print(f\"Detections: {stats.get('malicious',0)}/{sum(stats.values())}\")
print(f\"Family: {list(attrs.get('popular_threat_classification',{}).get('suggested_threat_label','Unknown').split('/'))}\")
names = attrs.get('names', [])
print(f\"Common names: {', '.join(names[:5])}\")
print(f\"First seen: {attrs.get('first_submission_date','Unknown')}\")
" 2>&1 | tee evidence/$(date +%Y%m%d)/$TARGET/malware/static/vt_result.txt
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 299 lines · 0 tokens per session scan A 78dca32e6873
malware-analyst is an agent published in the GitHub repository mukul975/Threatswarm (77 stars, last pushed 4mo ago), licensed MIT. It adds 99 tokens to every session and 3,614 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other agents, from other repositories
token-auditor
Fast meme coin and token security auditor. Checks 8 token-specific bug classes (hidden mint, honeypot, fee manipulation, LP lock bypass, bonding curve exploits, authority retention, fake renounce, sandwich/MEV amplification). Runs tokenscanner.py for automated red flag detection. Covers EVM (Solidity) and Solana…
web3-auditor
Smart contract security auditor. Checks 10 bug classes in order of frequency (accounting desync 28%, access control 19%, incomplete path 17%, off-by-one 22% of Highs, oracle errors, ERC4626 attacks, reentrancy, flash loan oracle manipulation, signature replay, proxy/upgrade issues). Applies pre-dive kill signals…
validator
Finding validator. Runs the 7-Question Gate and 4-gate checklist on a described finding. Kills weak/theoretical findings fast before report writing. Prevents N/A submissions. Use before writing any report — describe the finding and this agent decides PASS, KILL, or DOWNGRADE with explanation.
recon-ranker
Attack surface ranking agent. Takes recon output and hunt memory, produces a prioritized attack plan. Ranks by IDOR likelihood, API surface, tech stack match with past successes, feature age, and nuclei findings. Use after recon to decide what to test first.
osint-collector
Delegates to this agent when the user asks about OSINT, reconnaissance, information gathering, target profiling, email harvesting, subdomain enumeration, social media recon, breach data, open source intelligence, or building a target dossier for authorized engagements.
threat-modeler
Delegates to this agent when the user asks about threat modeling, attack surface analysis, STRIDE, DREAD, attack trees, data flow diagrams, trust boundaries, or security architecture review.