Malware Analysis Fundamentals
Malware analysis is the controlled examination of suspicious software to determine what it is, how it behaves, and what evidence can detect or contain it. Analysts combine file inspection, isolated execution, and code analysis without trusting the sample or a single tool verdict.
itDefensive security and security operations | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic — Malware Analysis Fundamentals
Malware analysis is the controlled examination of suspicious software. It exists because a filename, a detection score, or a dramatic tool label cannot tell a defender what a file actually does. Before there is a defensible analysis, there is only an artifact and a collection of guesses, which is not quite the same thing as a conclusion no matter how colorful the dashboard is.
Start with the boundary. Preserve the original, calculate a cryptographic hash, and work from a copy in a disposable analysis guest. A virtual machine is helpful, not magical. Shared folders, credentials, host networking, and casual clipboard sharing turn an investigation into a small committee meeting between the sample and things it should never meet.
The useful mental model is an evidence ladder. Static analysis examines the file without running it: its format, headers, sections, imports, resources, and strings. That tells you what is present. Dynamic analysis observes one controlled run: processes, writes, registry changes, network activity, and memory. That tells you what happened there. Code analysis follows instructions and branch conditions, which can explain why it happened and what had to be true first.
The surprise is that these answers are not interchangeable. An imported networking function does not prove a connection. A domain string does not prove contact. A quiet sandbox does not prove safety; it only says that relevant behavior was not observed in that particular setup. Packing makes the arrangement more theatrical by leaving a small visible stub on disk while the more useful code appears later in memory.
The course path is arranged to make the uncertainty manageable. Read the Intro when you need the full investigation loop and its limits. Use Slides for the relationships between static, dynamic, and code evidence. Keep the Cheatsheet nearby when choosing a signal, an indicator, or confidence language. The Field Notes cover the places where an apparently tidy report becomes a costly decision. The quiz is where the tempting overclaim gets to meet a firm “not established.”
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://csrc.nist.gov/pubs/sp/800/83/r1/final
Supports
- Definition and organizational impact of malware
- Malware incident preparation, containment, analysis, and recovery context
- Evidence-aware reporting and response decisions
- https://learn.microsoft.com/en-us/windows/win32/debug/pe-format
Supports
- PE headers, sections, data directories, imports, exports, resources, relocations, and entry point
- Static triage of Windows executable structure
- https://docs.remnux.org/
Supports
- Static, dynamic, memory, network, document, and threat-data analysis tool categories
- Curated Linux analysis environment and container options
- https://github.com/mandiant/flare-vm
Supports
- Repeatable Windows reverse-engineering guest
- Virtual-machine-only installation, snapshots, and host-only networking guidance
- FLARE-VM Landscape and Awesome Links descriptions
- 2017 project-history milestone
- https://yara.readthedocs.io/en/stable/writingrules.html
Supports
- YARA strings, conditions, patterns, modules, and matching behavior
- Quiz guidance on distinctive and validated rule conditions
- https://virustotal.github.io/yara/
Supports
- Malware identification and classification with textual and binary patterns
- Cross-platform command-line and Python use
- https://virustotal.github.io/yara-x/blog/yara-is-dead-long-live-yara-x/
Supports
- More than 15 years of YARA development as of 2024
- YARA timeline milestone date approximation
- https://mandiant.github.io/capa/
Supports
- Code-level capability recognition from features and analysis backends
- Relationship between capability matches and manual reverse engineering
- https://learn.microsoft.com/en-us/sysinternals/downloads/procmon
Supports
- Real-time process, file system, and registry monitoring
- Dynamic evidence collection in Windows guests
- https://attack.mitre.org/techniques/T1055/
Supports
- Process injection behavior and defensive telemetry context
- https://ghidra-sre.org/
Supports
- Disassembly, decompilation, debugging, scripting, and reverse-engineering workflows
- Ghidra Landscape and Awesome Links descriptions
- https://www.nsa.gov/Press-Room/News-Highlights/Article/Article/1775584/ghidra-the-software-reverse-engineering-tool-youve-been-waiting-for-is-here/
Supports
- Public Ghidra release on 2019-03-05
- Reverse-engineering, scripting, collaboration, and processor-modeling features
- https://www.nsa.gov/Press-Room/Press-Releases-Statements/Press-Release-View/Article/1805182/attention-ghidra-users-full-source-code-released/
Supports
- Ghidra source-code release on 2019-04-04
- https://cuckoosandbox.org/docs-sub/en/1.1/introduction/what
Supports
- Automated execution in isolated guests
- Process, file, memory, screenshot, and network evidence collection
- 2010 project start and 2011-02-05 public beta
- https://cuckoosandbox.org/about
Supports
- Project history from 2010 through packaged releases
- https://cuckoosandbox.org/blog/cuckoo-sandbox-v2
Supports
- Cuckoo 2.0.0 release on 2017-03-30 and deployment changes
- https://volatilityfoundation.org/the-volatility-framework/
Supports
- Open-source memory forensics and malware-analysis use
- Recovery of volatile runtime artifacts
- https://volatilityfoundation.org/volatility-timeline/
Supports
- First public Volatility Framework release in August 2007
- https://docs.virustotal.com/docs/how-it-works
Supports
- Aggregated analysis and relationship context for files and URLs
- VirusTotal Landscape description
- https://blog.virustotal.com/2024/05/we-made-it-together-20-years-of.html
Supports
- VirusTotal launch date and collaborative-analysis history
- https://www.eicar.org/
Supports
- EICAR establishment in 1991
- https://www.eicar.org/download-anti-malware-testfile/
Supports
- Non-malicious test file for checking antivirus response without real malware
- https://www.virusbulletin.com/uploads/pdf/magazine/1991/199106.pdf
Supports
- Fred Cohen's 1983 controlled virus experiments and 1984 publication
- https://github.com/rshipp/awesome-malware-analysis
Supports
- Discovery of Ghidra, x64dbg, capa, FLOSS, Volatility, Wireshark, FLARE-VM, and REMnux as ecosystem tools
- https://help.x64dbg.com/
Supports
- Windows debugging, breakpoints, registers, memory, and execution control
- https://github.com/mandiant/flare-floss
Supports
- Extraction of static, stack, tight, and decoded strings
- https://www.wireshark.org/docs/
Supports
- Packet capture inspection and protocol analysis
- https://hex-rays.com/ida-pro
Supports
- IDA Pro Landscape role, licensing, and pricing category
- https://binary.ninja/
Supports
- Binary Ninja Landscape role, intermediate-language analysis, API, licensing, and pricing category
- https://any.run/
Supports
- Interactive hosted process, file, registry, and network observation
- ANY.RUN Landscape licensing and pricing category
- https://www.joesandbox.com/
Supports
- Automated behavior analysis and reporting across supported targets
- Joe Sandbox Landscape licensing and pricing category
- https://www.vmray.com/products/vmray-analyzer/
Supports
- Instrumented dynamic analysis and integrations
- VMRay Analyzer Landscape licensing and pricing category
- https://capev2.readthedocs.io/
Supports
- Self-hosted detonation, payload extraction, configuration recovery, and reporting
- CAPE Sandbox Landscape licensing and pricing category
- https://arxiv.org/abs/2403.16304
Supports
- Sandbox configuration materially affects observable activity and classification results
- Analysis scope, threat model, experiment limitations, and reproducibility documentation
- https://cloud.google.com/blog/topics/threat-intelligence/scaling-up-malware-analysis-with-gemini
Supports
- Large-scale analysis requires staged unpacking, decompilation, and code analysis
- A false positive requires functionality-level review rather than a detection count alone
- Unpacking and decompilation quality constrain downstream analysis
- https://cloud.google.com/blog/topics/threat-intelligence/a-nasty-trick-from-credential-theft-malware-to-business-disruption
Supports
- Observed artifacts can be insufficient to establish attribution or a complete intrusion relationship
- Malware behavior and post-exploitation activity vary across intrusions
- https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/get-filehash?view=powershell-7.6
Supports
- Get-FileHash computes file hashes and defaults to SHA256
- https://learn.microsoft.com/en-us/sysinternals/downloads/sigcheck
Supports
- Sigcheck reports version, timestamp, digital-signature, certificate-chain, hash, and entropy information
- VirusTotal lookup and upload are optional Sigcheck behaviors
