Malware Analysis Guide
This skill provides analytical guidance for understanding malware samples. It does NOT execute malware — it tells you what to look for in analysis reports, sandbox results, and VirusTotal data.
Static Analysis
PE Header Analysis
- Compilation timestamp: When was it compiled? Anomalous dates suggest timestomping.
- Sections: Unusual section names (not .text/.data/.rss/.reloc) suggest packing or custom builders.
- Entropy: High entropy (>7.0) in sections suggests encryption or compression (packed).
- Imports: Key suspicious imports indicate behavior:
| Import |
Indicates |
| VirtualAlloc, VirtualProtect |
Memory manipulation (injection, unpacking) |
| CreateRemoteThread, WriteProcessMemory |
Process injection (T1055) |
| RegSetValueEx, RegCreateKeyEx |
Registry persistence (T1547) |
| InternetOpenUrl, HttpSendRequest |
Network communication (T1071) |
| CryptEncrypt, CryptDecrypt |
Encryption (ransomware or C2 encryption) |
| CreateService, StartService |
Service persistence (T1543) |
| AdjustTokenPrivileges |
Privilege escalation (T1134) |
| IsDebuggerPresent, CheckRemoteDebuggerPresent |
Anti-analysis (T1622) |
String Analysis
Look for:
- URLs, IP addresses, domain names (C2 infrastructure)
- File paths (drop locations, persistence targets)
- Registry keys (persistence mechanisms)
- User-Agent strings (C2 communication patterns)
- Encryption keys or encoded data
- Error messages or debug strings (developer artifacts)
- Mutex names (used to prevent multiple instances)
Packer Identification
Common packers: UPX, Themida, VMProtect, ASPack, MPRESS. Packed samples need unpacking before full static analysis. High entropy + few meaningful strings = likely packed.
Dynamic Analysis (Sandbox Interpretation)
Process Behavior
- Child processes spawned (especially cmd.exe, powershell.exe, wscript.exe)
- Process injection into legitimate processes (svchost, explorer, lsass)
- Privilege escalation attempts
- Anti-analysis checks (VM detection, sandbox detection, timing checks)
File System Activity
- Files dropped (where? what type?)
- Files modified (host files, configuration files)
- Files deleted (covering tracks, removing competitors)
Registry Activity
- Run/RunOnce keys (persistence)
- Service creation (persistence)
- Firewall rule modification (defense evasion)
- Security tool disabling
Network Activity
- DNS queries (C2 domains, DGA-generated domains)
- HTTP/HTTPS connections (C2 communication, data exfiltration)
- Raw TCP/UDP connections (custom protocol C2)
- Certificate information (self-signed = suspicious)
Analysis Output Template
## Malware Analysis: [Sample Name/Hash]
### Sample Information
- SHA-256: [hash]
- File type: [PE/ELF/document/script]
- File size: [bytes]
- First seen: [date]
- Detection ratio: [X/Y from VT]
- Family: [if identified]
### Static Analysis Findings
- Compilation: [timestamp, language, compiler]
- Packing: [packer identified or unpacked]
- Key imports: [suspicious APIs]
- Notable strings: [C2, paths, keys, mutexes]
### Dynamic Behavior
- Execution chain: [parent → child processes]
- Persistence: [mechanism and location]
- C2 communication: [protocol, destination, pattern]
- Data collection: [what data is targeted]
- Defense evasion: [anti-analysis, obfuscation]
### MITRE ATT&CK Mapping
| Tactic | Technique | Observed Behavior |
|--------|-----------|-------------------|
### IOCs Extracted
| Type | Value | Context |
|------|-------|---------|
### Assessment
[What is this malware? What does it do? Who might use it? Confidence level.]
Tooling for the sections above
When the sample is available in ReversingLabs Spectra Analyze (A1000), /lookup-reversinglabs report <hash> --detailed is the single richest source for almost everything on this page — it returns vendor-authoritative classification, TitaniumCore static analysis (headers, imports, strings, packer detection), attack (auto-mapped MITRE ATT&CK tactics + techniques from observed behaviour), rl_cloud_sandbox (dynamic analysis output), and networkthreatintelligence (C2 indicators extracted from the sample). Use it to pre-fill the MITRE ATT&CK Mapping and IOCs Extracted tables in the output template before doing your own analysis. Pivot to siblings in the same family with /lookup-reversinglabs search 'threatname:<family> classification:malicious', and to parent/child relationships with containers / extracted.
Related skills
- Sample triage before deep analysis —
/hash-investigation for VT detection ratio, family attribution, behaviour tags, and pre-existing community context. If detection is high and family is known, the lookup may be sufficient.
- Vendor-authoritative analysis —
/lookup-reversinglabs report <hash> --detailed for classification, MITRE ATT&CK mapping, sandbox, and network indicators in a single call. Run this whenever RL credentials are configured — it shortcuts most of the manual static + dynamic interpretation below.
- C2 and infrastructure extraction —
/lookup-virustotal file <hash> --relationships contacted_ips,contacted_domains,contacted_urls,communicating_files,dropped_files,parent_files (VT) and /lookup-reversinglabs report <hash> --fields networkthreatintelligence (RL); pivot each via /indicator-pivoting
- Vendor actor attribution —
/lookup-crowdstrike indicator <hash> for the threat actors and malware family CrowdStrike Falcon Intel links to the sample, plus report references; then /lookup-crowdstrike ttps <actor> to pull that actor's ATT&CK technique set into the MITRE ATT&CK Mapping table. Run whenever CrowdStrike credentials are configured.
- Community attribution —
/lookup-otx file <hash> for pulses and YARA matches
- First-party correlation —
/lookup-liberty91 ioc-lookup <hash> for the platform's own verdict, then library malware --name "<family>" (or --alias for a vendor's name) and entity malware <id> --section techniques|iocs|threat-events for the canonical family record: dated ATT&CK observations, associated indicators, and the occurrences the family has been named in
- Internal correlation —
/lookup-misp search-attributes --value <hash> and/or /lookup-opencti lookup <hash> to surface prior catalogued intel; if the analysis produces new indicators worth keeping, /lookup-misp add-attribute / create-event and/or /lookup-opencti create-indicator
- Ransomware-family lineage —
/lookup-ransomwarelive yara <group> and iocs <group> provide a curated reference set if VT family classification points to a known group
- Detection authoring —
/yara-writing for family/sample rules; /sigma-writing for behavioural detection
- Apply rigor —
/score-source, /apply-tlp, /confidence-language
1---2name: malware-analysis3description: Use when characterising a malware sample, the user asks "what does this binary do?" / "analyse this hash deeply", or `/hash-investigation` flags a novel sample warranting deeper review. Static + dynamic methodology, behavioural indicators, sandbox interpretation.4---56# Malware Analysis Guide78This skill provides analytical guidance for understanding malware samples. It does NOT execute malware — it tells you what to look for in analysis reports, sandbox results, and VirusTotal data.910## Static Analysis1112### PE Header Analysis13- **Compilation timestamp**: When was it compiled? Anomalous dates suggest timestomping.14- **Sections**: Unusual section names (not .text/.data/.rss/.reloc) suggest packing or custom builders.15- **Entropy**: High entropy (>7.0) in sections suggests encryption or compression (packed).16- **Imports**: Key suspicious imports indicate behavior:1718| Import | Indicates |19|--------|----------|20| VirtualAlloc, VirtualProtect | Memory manipulation (injection, unpacking) |21| CreateRemoteThread, WriteProcessMemory | Process injection (T1055) |22| RegSetValueEx, RegCreateKeyEx | Registry persistence (T1547) |23| InternetOpenUrl, HttpSendRequest | Network communication (T1071) |24| CryptEncrypt, CryptDecrypt | Encryption (ransomware or C2 encryption) |25| CreateService, StartService | Service persistence (T1543) |26| AdjustTokenPrivileges | Privilege escalation (T1134) |27| IsDebuggerPresent, CheckRemoteDebuggerPresent | Anti-analysis (T1622) |2829### String Analysis30Look for:31- URLs, IP addresses, domain names (C2 infrastructure)32- File paths (drop locations, persistence targets)33- Registry keys (persistence mechanisms)34- User-Agent strings (C2 communication patterns)35- Encryption keys or encoded data36- Error messages or debug strings (developer artifacts)37- Mutex names (used to prevent multiple instances)3839### Packer Identification40Common packers: UPX, Themida, VMProtect, ASPack, MPRESS. Packed samples need unpacking before full static analysis. High entropy + few meaningful strings = likely packed.4142## Dynamic Analysis (Sandbox Interpretation)4344### Process Behavior45- Child processes spawned (especially cmd.exe, powershell.exe, wscript.exe)46- Process injection into legitimate processes (svchost, explorer, lsass)47- Privilege escalation attempts48- Anti-analysis checks (VM detection, sandbox detection, timing checks)4950### File System Activity51- Files dropped (where? what type?)52- Files modified (host files, configuration files)53- Files deleted (covering tracks, removing competitors)5455### Registry Activity56- Run/RunOnce keys (persistence)57- Service creation (persistence)58- Firewall rule modification (defense evasion)59- Security tool disabling6061### Network Activity62- DNS queries (C2 domains, DGA-generated domains)63- HTTP/HTTPS connections (C2 communication, data exfiltration)64- Raw TCP/UDP connections (custom protocol C2)65- Certificate information (self-signed = suspicious)6667## Analysis Output Template6869```markdown70## Malware Analysis: [Sample Name/Hash]7172### Sample Information73- SHA-256: [hash]74- File type: [PE/ELF/document/script]75- File size: [bytes]76- First seen: [date]77- Detection ratio: [X/Y from VT]78- Family: [if identified]7980### Static Analysis Findings81- Compilation: [timestamp, language, compiler]82- Packing: [packer identified or unpacked]83- Key imports: [suspicious APIs]84- Notable strings: [C2, paths, keys, mutexes]8586### Dynamic Behavior87- Execution chain: [parent → child processes]88- Persistence: [mechanism and location]89- C2 communication: [protocol, destination, pattern]90- Data collection: [what data is targeted]91- Defense evasion: [anti-analysis, obfuscation]9293### MITRE ATT&CK Mapping94| Tactic | Technique | Observed Behavior |95|--------|-----------|-------------------|9697### IOCs Extracted98| Type | Value | Context |99|------|-------|---------|100101### Assessment102[What is this malware? What does it do? Who might use it? Confidence level.]103```104105## Tooling for the sections above106107When the sample is available in ReversingLabs Spectra Analyze (A1000), `/lookup-reversinglabs report <hash> --detailed` is the single richest source for almost everything on this page — it returns vendor-authoritative classification, TitaniumCore static analysis (headers, imports, strings, packer detection), `attack` (auto-mapped MITRE ATT&CK tactics + techniques from observed behaviour), `rl_cloud_sandbox` (dynamic analysis output), and `networkthreatintelligence` (C2 indicators extracted from the sample). Use it to pre-fill the **MITRE ATT&CK Mapping** and **IOCs Extracted** tables in the output template before doing your own analysis. Pivot to siblings in the same family with `/lookup-reversinglabs search 'threatname:<family> classification:malicious'`, and to parent/child relationships with `containers` / `extracted`.108109## Related skills110111- **Sample triage before deep analysis** — `/hash-investigation` for VT detection ratio, family attribution, behaviour tags, and pre-existing community context. If detection is high and family is known, the lookup may be sufficient.112- **Vendor-authoritative analysis** — `/lookup-reversinglabs report <hash> --detailed` for classification, MITRE ATT&CK mapping, sandbox, and network indicators in a single call. Run this whenever RL credentials are configured — it shortcuts most of the manual static + dynamic interpretation below.113- **C2 and infrastructure extraction** — `/lookup-virustotal file <hash> --relationships contacted_ips,contacted_domains,contacted_urls,communicating_files,dropped_files,parent_files` (VT) and `/lookup-reversinglabs report <hash> --fields networkthreatintelligence` (RL); pivot each via `/indicator-pivoting`114- **Vendor actor attribution** — `/lookup-crowdstrike indicator <hash>` for the threat actors and malware family CrowdStrike Falcon Intel links to the sample, plus report references; then `/lookup-crowdstrike ttps <actor>` to pull that actor's ATT&CK technique set into the **MITRE ATT&CK Mapping** table. Run whenever CrowdStrike credentials are configured.115- **Community attribution** — `/lookup-otx file <hash>` for pulses and YARA matches116- **First-party correlation** — `/lookup-liberty91 ioc-lookup <hash>` for the platform's own verdict, then `library malware --name "<family>"` (or `--alias` for a vendor's name) and `entity malware <id> --section techniques|iocs|threat-events` for the canonical family record: dated ATT&CK observations, associated indicators, and the occurrences the family has been named in117- **Internal correlation** — `/lookup-misp search-attributes --value <hash>` and/or `/lookup-opencti lookup <hash>` to surface prior catalogued intel; if the analysis produces new indicators worth keeping, `/lookup-misp add-attribute` / `create-event` and/or `/lookup-opencti create-indicator`118- **Ransomware-family lineage** — `/lookup-ransomwarelive yara <group>` and `iocs <group>` provide a curated reference set if VT family classification points to a known group119- **Detection authoring** — `/yara-writing` for family/sample rules; `/sigma-writing` for behavioural detection120- **Apply rigor** — `/score-source`, `/apply-tlp`, `/confidence-language`