Exploring Malware Analysis: Methods and Software Solutions
A suspicious executable reaches the security team with an urgent question: what can this file do, and did any of those actions happen on our systems? Those are not the same question. A static inspection might suggest that the file can create a service or contact a remote host. A behavioral report might show a process making a network request in one controlled environment. Neither observation, by itself, proves that the activity occurred on the employee’s computer.
Good malware analysis begins by choosing the evidence needed for the decision, not by opening every tool in a catalogue. Sometimes metadata and a trusted software inventory settle a disputed file. Sometimes reverse engineering is warranted. At other times the essential next step is a specialist’s isolated behavioral study or a live-incident forensic review. This guide explains those choices and the limits of their results; it does not teach readers to execute malware on an ordinary workstation or build a sandbox.
Before an analyst opens a binary, write down what prompted the request. Is the incident-response team asking whether a blocked download poses a residual risk? Does a software owner need to distinguish a legitimate installer from a lookalike? Does a detection engineer need a rule that matches a known cluster of samples without flagging an entire product family? Or has a specialist been asked to determine whether a particular persistence technique is implemented in the code?
The source of the request changes the acceptable answer. A help-desk alert may need a quick, provisional disposition. Attribution to a named actor requires much stronger evidence than identifying a suspicious function. A containment decision may depend on observed enterprise telemetry rather than what a sample appears able to do. NIST’s 2013 guidance for malware incidents on desktops and laptops provides historical incident-handling context, but it is not a modern, product-specific reverse-engineering playbook or a rule that all suspicious samples must be executed.
| Question to answer | Useful first evidence | Claim to avoid |
|---|---|---|
| What exactly was received? | Original source, byte hash, file type, signer and acquisition record | A suspicious name or unfamiliar hash proves malicious intent |
| What might this code be capable of? | Static structure, imports, referenced strings and carefully verified capability matches | Every identified capability was exercised on a victim |
| What happened during a controlled observation? | Timestamped process, file, registry and network events from a documented lab environment | The short observation reproduced every possible behavior |
| What occurred on the affected host? | Preserved endpoint, memory, identity and network evidence from the real incident | A lab report substitutes for host-specific evidence |
| What should defenders change? | Corroborated behaviors, tested detections and clear scope/false-positive boundaries | One sample proves a whole malware family or actor attribution |
A useful intake note names the file or event, the person and system that supplied it, the reason analysis is needed, the handling restrictions, the decision owner and a deadline that reflects operational urgency. If those details are missing, obtaining them may be more valuable than producing a lengthy but irrelevant tool report.
Keep the submitted object separate from ordinary downloaded files and shared workspaces. Preserve the original bytes through an approved evidence process, record where they came from, and compute a strong cryptographic hash to identify the exact version examined. A hash helps detect accidental changes and correlate identical bytes; it is not a malware verdict. The analyst should keep the original immutable and work from a controlled copy, with access limited to people authorized to handle the case.
NIST’s Guide to Integrating Forensic Techniques into Incident Response, issued in August 2006, is an older but useful source for collection, examination, analysis and reporting concepts. It explicitly approaches forensics from an IT incident-response perspective rather than as a complete legal evidence manual. Consult current organizational and legal requirements before acquiring, exporting or sharing regulated material. Do not assume a routine malware-analysis ticket establishes consent to copy employee documents, secrets or customer data.
Public reputation services need deliberate handling too. VirusTotal’s description of submissions and result sharing explains that submitted files and related results are shared with analysis partners. A suspicious invoice attachment can contain customer information, internal paths or credentials. Do not upload such content to a public service merely to obtain another detection count. A previously known hash can sometimes be queried without uploading the file; even then, sharing policies, contractual restrictions and account-specific service terms still apply.
Record the time base, sample label, relevant endpoint alert, the exact data consulted, and any actions taken that could alter the copy. Password-protected archives and apparently benign office documents should be treated as potentially active content, not casually opened in a regular desktop application. Stop and refer an unsafe handling problem to the designated analysis team rather than improvising a personal virtual machine or forwarding the object through email.
Static analysis examines an object without intentionally running its application behavior. Early questions are modest: is the file format consistent with its extension; does the header describe a Windows PE binary, ELF image or document; is a digital signature present and valid; do the observed imports and resources fit the claimed publisher; and does the file appear compressed or packed? High entropy can be a useful clue to compression or encryption, but many legitimate files also have high entropy. A missing signature is not a finding of malware.
For compiled code requiring deeper study, the NSA-maintained Ghidra reverse-engineering framework provides disassembly, decompilation, graphing and scripting. Its reconstructed higher-level representations are analyst aids, not the developer’s original source code and not a guarantee that every indirect call or runtime target has been recovered. Loading an untrusted file into a complex parser has its own risk; follow the lab’s tool-version and isolation policy, including relevant published security advisories.
Automated capability matching can help direct limited analyst time. Mandiant’s capa capability-identification project analyzes executable features or supported sandbox reports to suggest behaviors such as service installation, process creation or network communication. A rule match is a hypothesis supported by observed features, not proof that the code followed the matched path. Its maintainers also warn that packed or obfuscated samples can produce incomplete or misleading static results. When a claim matters, inspect the underlying rule match and surrounding code or ask a qualified reverse engineer to review it.
YARA has a different purpose. Its rule language for strings and conditions can help match distinctive byte sequences or structural patterns across a controlled set of files. A very broad string rule may match legitimate programs, while a narrowly tailored rule may miss a modified sample. Do not label a detection rule as verified until it has been tested against relevant known-good and known-bad material, with documented false-positive limits. Searching for a string is not the same thing as executing the program that contains it.
Static work is often enough to answer whether a submitted file is identical to an approved installer or to prioritize a suspected persistence-related routine. It is rarely enough to establish what a specific host actually did. The output should name the extracted observation, its interpretation, an alternative explanation and the next evidence that could resolve the ambiguity.
Dynamic analysis observes behavior while a sample runs under deliberately controlled conditions. It can reveal created processes, attempted file or configuration changes, network requests and activity that was not evident from strings or imports. It also creates real execution risk. A normal office computer, personal virtual machine or general-purpose corporate test environment is not an appropriate place for an unknown malicious object. Isolation, egress controls, snapshots, monitoring, teardown, access approval and incident-containment responsibilities belong to a specialized lab run by authorized staff.
REMnux’s official malware-analysis toolkit documentation distinguishes static inspection, dynamic reverse engineering, memory forensics and network/system interaction tools. The existence of such a toolkit does not make a newly created virtual machine safe by default. A snapshot restores a guest’s disk state; it does not undo network traffic, data sent to an external destination or exposure through incorrectly shared host resources. Lab design, not the mere presence of virtualization, determines whether controlled execution is acceptable.
Before ordering a behavioral study, identify the hypothesis and what would count as supporting or contradicting it. If the static evidence suggests a service-creation routine, the question might be whether that routine is actually triggered in the permitted observation window. If a file refers to network APIs, the question is which connection attempts the monitoring environment observed, if any. An analyst must also document which environmental triggers were absent, whether access to the internet was simulated or blocked, and how long observation lasted. A short, quiet run is not a clean bill of health: some code sleeps, checks environment characteristics, waits for a command or requires particular user actions.
Specialists may correlate multiple evidence streams. Microsoft’s current Process Monitor documentation, updated September 2026, describes real-time Windows file-system, registry, process and thread activity. A logged registry write establishes a monitored operation and its context; it does not by itself prove persistence survived a reboot. A captured network connection may establish an attempted flow while saying little about the content of encrypted traffic or whether information was stolen. Reports should preserve those distinctions and explicitly mark data-source gaps.
| Method or source | Potential finding | Important blind spot |
|---|---|---|
| Static structure and decompilation | Referenced routines, imports and code paths worth checking | Indirect behavior, packed code and whether a path ran |
| Behavioral file/registry observation | Recorded changes during the lab window | Missed events, failed operations or later persistence |
| Lab network metadata | Observed destinations, attempts, timing and protocols | Blocked traffic, encrypted payload meaning and live-host equivalence |
| Memory-image examination | Runtime processes, modules and other captured volatile artifacts | What occurred before acquisition or outside the image’s coverage |
| Enterprise endpoint and identity history | Actions attributed to an actual affected system and time window | Uncollected sources, sensor outage and retention gaps |
Any experiment that deliberately tries to provoke hidden malicious behavior should be designed and approved by the specialist lab. The editorial purpose here is to help the commissioning investigator ask the right question and interpret a report, not to supply evasion, payload-triggering or external communication instructions.
Imagine an invented support ticket, CASE-ALDER-04. An employee expected an invoice PDF but received a file named InvoiceViewerUpdate.exe. The endpoint product quarantined the object, and the analyst needs to advise whether additional host review is warranted. There is no real malware sample, domain, tenant data or execution in this example. All observations below are hypothetical evidence types, written to show how claims should be bounded.
The first-line team preserves the alert and its action state. A specialist’s offline static inspection of a controlled copy finds an executable header, an unverified publisher claim, a network-related import and two strings that resemble configuration labels. Those observations justify a closer look; they do not establish a remote-control channel. Capability matching suggests code associated with creating a scheduled task, but the specialist has not confirmed whether that path is reachable or used. The triage label is therefore suspected capability, not observed execution.
The incident owner asks a separate lab to assess whether execution attempts the suspected action. In this fictional exercise, the lab reports one process launch, a blocked connection attempt to a simulated endpoint, and no observed scheduled-task creation within its short observation window. The analyst may conclude that the lab observed a process and an attempted connection. It would be inaccurate to say that no persistence is possible, that data was exfiltrated, or that the exact same activity took place on the employee’s machine.
| Illustrative evidence | Defensible statement | Unresolved question / owner |
|---|---|---|
| Quarantined attachment and exact SHA-256 | One specific submitted object is preserved for analysis | Endpoint responder verifies original arrival and any pre-quarantine activity |
| Static import and capability rule match | Code features are consistent with a possible network/persistence capability | Reverse engineer checks matching code and false-positive alternatives |
| Short isolated lab observation | One process and simulated outbound attempt were observed | Lab owner reports scenario configuration, telemetry and duration limits |
| No scheduled-task event in that lab run | The reviewed lab sources did not record the action | Do not infer that the code lacks or could never trigger persistence |
| Actual endpoint history still incomplete | Host-specific compromise scope has not been established | Incident owner decides on forensic collection, containment and follow-up |
The handoff is more useful than a dramatic malware-family label: it states exactly which questions are supported, which remain open, who owns the follow-up, and what operational decision is pending. If later evidence identifies a known benign application, the record can be revised without erasing the original reason for investigation. If affected-host telemetry supports malicious execution, the incident team can act on that evidence rather than extrapolating from the lab alone.
When the concern involves a running host, live memory and other volatile evidence may answer questions that static disk inspection cannot. A code fragment might exist only in a captured process; a loaded module or current network-related artifact could help explain activity at the acquisition moment. Yet memory collection can alter state, create sensitive copies and affect system availability. The responder responsible for evidence preservation—not a casually curious malware analyst—should decide whether, when and how it is authorized.
The Volatility Foundation’s Volatility 3 framework supports examining artifacts in acquired memory images. Its own documentation notes that operating-system-specific symbol information and available plugins affect interpretation. A result from one memory image does not reconstruct every past action. It also is not the same as a behavioral observation in an isolated lab: the source system, acquisition time, running workload and chain of custody differ.
Coordinate with the existing incident-response process before demanding live-host collection. The forensic team may reasonably prioritize preserving evidence while the operations team urgently contains harm. Conversely, an immediate reboot or reimage can remove volatile context even if it restores service. The right balance is a documented risk decision made by the accountable incident and service owners. The output here is a defensible analysis-method and evidence plan; live containment and restoration require their own authorized incident workflow.
An analysis report should separate observed artifact, inference and untested hypothesis. State the sample hash, intake provenance, controls on handling or sharing, static tools and versions, any lab-report identifiers, observation interval, collection sources, limitations and review owner. Explain whether a capability was suggested by automated pattern matching, confirmed through manual code review, actually observed in a controlled run, or established through affected-host telemetry. These are progressively different claims and should never be silently combined.
Use a conclusion that fits the evidence. For example: “The retained file contains code features consistent with scheduled-task creation; automated matching requires manual confirmation. One isolated trial showed an outbound connection attempt, but did not show the suspected persistence action in the monitored interval. There is no basis yet to claim that the same behavior ran on the affected workstation. Host-specific review remains open with the incident owner.” This is a stronger professional result than “banking trojan confirmed” without provenance.
Defensive follow-up should be specific. A detection engineer can test a narrowly scoped rule against appropriate positive and negative samples; an endpoint responder can search documented host events and account exposure; the incident owner can request containment or preservation consistent with the risk; and the specialist lab can accept a tightly defined second question if it would change a real decision. Avoid publishing unverified indicators to broad blocklists, sharing sensitive sample bytes through uncontrolled services, or calling a negative lab run harmless.
Malware analysis is not a contest to accumulate more tool names. It is the disciplined work of choosing a method that can answer a question, protecting the evidence while obtaining it, and stating conclusions no stronger than the observations support. Static and dynamic techniques are complements, not interchangeable verdict generators; a clear uncertainty boundary is part of a sound security decision.