malware-analysis
Professional malware analysis workflow for PE executables and suspicious files.
Skill by tsale
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/tsale-malware-analysis
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: ml, security, productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 9
abuseipdb.com· found in codeapi.abuseipdb.com· found in codeauth.abuse.ch· found in codecodeload.github.com· found in install commandevil.com· found in codemb-api.abuse.ch· found in codethreatfox-api.abuse.ch· found in codeurlhaus-api.abuse.ch· found in codevirustotal.com· found in code
Files it touches
~/.claude/skills/malware-analysis/mnt/user-data/uploads/api_keys.json/mnt/user-data/uploads/config.json- Your home directory (~)
What's inside
- Skill name
malware-analysis- Description
- Professional malware analysis workflow for PE executables and suspicious files. Triggers on file uploads with requests like "analyze this malware", "analyze this sample", "what does this executable do", "check this file for malware", or any request to examine suspicious files. Performs static analysis, threat intelligence triage, behavioral inference, and produces analyst-grade reports with reasoned conclusions.
- License
- Apache-2.0
- Instructions
- 260 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Agent Skills spec issues
- name: "malware-analysis" does not match folder "malware-analysis-tr"
Files (8)
- SKILL.md
- config.json · config/
- mitre_techniques.md · references/
- report_template.md · references/
- extract_iocs.py · scripts/
- generate_report.py · scripts/
- static_analysis.py · scripts/
- triage.py · scripts/
SKILL.md (first lines)
# Malware Analysis Skill This skill produces **analyst-grade threat reports** — not data dumps. Every conclusion must be backed by evidence and reasoning. ## Core Principles 1. **Evidence-based reasoning**: Never state a conclusion without explaining WHY 2. **Connect the dots**: Link indicators to behaviors to capabilities to impact 3. **Assess confidence**: State how confident you are and why 4. **Actionable output**: Reports should enable decisions, not just inform ## Analysis Workflow ### Step 1: Collect Data Run all scripts to gather raw data: ```bash # Static analysis - get hashes, PE info, strings, APIs, entropy python3 scripts/static_analysis.py /path/to/sample -f json > static.json # Threat intelligence - check reputation across sources python3 scripts/triage.py -t file /path/to/sample -f json > triage.json # IOC extraction - extract network/host indicators python3 scripts/extract_iocs.py /path/to/sample -f json > iocs.json ``` ### Step 2: Analyze and Reason (THIS IS THE KEY STEP) Using the collected data, perform analyst-grade reasoning: #### 2.1 Threat Intelligence Assessment Ask yourself: - Is this sample known? If found in MalwareBazaar/ThreatFox, it's **confirmed malware** - What's the VT detection rate? - 0 detections: New sample, FP, or clean — **requires behavioral analysis** - 1-5 detections: Possibly new variant or targeted — **suspicious** - 5-15 detections: Confirmed malicious by multiple vendors - 15+ detections: Well-known malware - What family is it attributed to? Research that family's typical behavior - When was it first seen? Recent = active campaign **Always explain your reasoning:** > "This sample is identified as RedLine Stealer by MalwareBazaar with 45/70 VT detections. The high detection rate and presence in curated malware repositories confirms this is a known threat, not a false positive." #### 2.2 Behavioral Analysis from Static Indicators **API Analysis** - Map APIs to behaviors: | API Pattern | Likely Behavior | Reasoning | |-------------|-----------------|-----------| | VirtualAlloc + VirtualProtect + WriteProcessMemory + CreateRemoteThread | Process Injection | This is the classic injection pattern: allocate memory, make it executable, write code, execute in target | | CredEnumerate, CryptUnprotectData | Credential Theft | These APIs specifically access Windows credential stores and DPAPI-protected data (browser passwords) | | InternetOpen + URLDownloadToFile | Downloader | Initializes HTTP and downloads files — classic dropper behavior | | RegSetValueEx + Run key paths in strings | Persistence | Writing to Run keys ensures execution at startup | | IsDebuggerPresent, GetTickCount, NtQuerySystemInformation | Anti-Analysis | Multiple evasion checks suggest the malware hides its behavior during analysis | | CryptEncrypt + file enumeration APIs | Possible Ransomware | Encryption capability combined with file discovery — but could also be secure C2 | **Always explain your reasoning:** > "The presence of VirtualAlloc, VirtualProtect, and CreateRemoteThread together strongly suggests process injection capability. Individually these APIs have legitimate uses, but this specific combination is the textbook pattern for injecting code into other processes." **Packing Analysis:** | Indicator | Meaning | Confidence | |-----------|---------|------------| | Entropy > 7.0 | Compressed/encrypted content | High | | Section entropy > 7.0 (especially .text) | Packed code section | High | | UPX0, UPX1, .aspack, .packed sections | Known packer signatures | Very High | | RWX sections | Self-modifying code | Medium | | Small import table with GetProcAddress/LoadLibrary only | Dynamic API resolution | High | **If packed, state the implication:** > "This sample shows multiple packing indicators (entropy 7.4, UPX sections). The static analysis findings represent the unpacker stub, NOT the actual payload. Dynamic analysis is required to reveal true functionality." #### 2.3 Capability Assessment Based on the evidence, determine what the malware CAN DO: | Capability | Required Evidence | Confidence Level | |------------|-------------------|------------------| | Process Injection | 2+ injection APIs | High if 3+, Medium if 2 | | Credential Theft | Any cred access API | High (these are specific) | | Keylogging | SetWindowsHookEx | Medium (has legit uses) | | Network C2 | 2+ network APIs + extracted URLs/IPs | High | | File Download | URLDownloadToFile or similar | High | | Persistence | Registry/service APIs + relevant strings | Medium | | Encryption/Ransomware | Crypto APIs + file enumeration | Medium (needs context) | **State confidence and reasoning:** > "**Credential Theft Capability: HIGH CONFIDENCE** — CryptUnprotectData is present, which specifically decrypts DPAPI-protected data including browser passwords. This API has no legitimate use case in most software." #### 2.4 Risk Assessment Determine risk level with justification: | Risk Level | Criteria | |------------|----------| | **CRITICAL** | Credential theft APIs, process injection, confirmed malware family known for data theft/ransomware | | **HIGH** | Multiple malicious capabilities, network C2, persistence mechanisms | | **MEDIUM** | Suspicious indicators but no confirmed malicious capability, or packing hiding true behavior | | **LOW** | Few indicators, possibly legitimate software with suspicious patterns | | **UNKNOWN** | Insufficient evidence, heavily packed, or no TI hits | ### Step 3: Write the Report Structure your report as follows: ```markdown # Threat Analysis Report: [MALWARE_NAME or "Unknown Sample"] | | | |---|---| | **Risk Level** | [CRITICAL/HIGH/MEDIUM/LOW] | | **Confidence** | [High/Medium/Low] | | **Analysis Date** | [DATE] | ---
From tsale/awesome-dfir-skills, Apache-2.0.
More from tsale/awesome-dfir-skills
- 0.696score
admiralty-system
tsale
Apply the NATO Admiralty System (AJP-2.1) to assess source reliability and information credibility in cyber threat intelligence, OSINT, and breach analysis.
SkillCFreshness: C★ 325Claude Code +9 - 0.620score
threat-actor-profiling
tsale
Build structured threat actor profiles using the 5W1H framework and the Diamond Model.
SkillDFreshness: D★ 325Claude Code +9 - 0.537score
osquery-query-helper
tsale
Help users write, validate, and troubleshoot osquery SQL queries using provided osquery table schemas as the authoritative source.
SkillDFreshness: D★ 325Claude Code +9 - 0.535score
analysing-attack
tsale
Analyse Mitre ATT&CK tactics, techniques and sub-techniques.
SkillDFreshness: D★ 325Claude Code +9
Signals
- Stars
- 325
- Forks
- 36
- Open issues
- 0
- Last commit (this folder)
- Jan 21, 2026 (9 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/tsale/awesome-dfir-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from tsale
- 0.696score
admiralty-system
tsale
Apply the NATO Admiralty System (AJP-2.1) to assess source reliability and information credibility in cyber threat intelligence, OSINT, and breach analysis.
SkillCFreshness: C★ 325Claude Code +9 - 0.620score
threat-actor-profiling
tsale
Build structured threat actor profiles using the 5W1H framework and the Diamond Model.
SkillDFreshness: D★ 325Claude Code +9 - 0.537score
osquery-query-helper
tsale
Help users write, validate, and troubleshoot osquery SQL queries using provided osquery table schemas as the authoritative source.
SkillDFreshness: D★ 325Claude Code +9 - 0.535score
analysing-attack
tsale
Analyse Mitre ATT&CK tactics, techniques and sub-techniques.
SkillDFreshness: D★ 325Claude Code +9
Cite this page
malware-analysis skill. Agent Mart. https://agentmart.dev/skills/tsale-malware-analysis (last updated 2026-10-24)