Skip to main content

The Big List of Malware Analysis Tools

·2003 words·10 mins·
Mike (Rem)
Author
Mike (Rem)
GCIA, GCIH, GSEC | Founder, Vipyr Security

Malware Analysis is a constantly evolving, highly engaging, and adversarial field that can be both incredibly useful for Security Operations Analysts, and incredibly helpful for the broader Cybersecurity community.

The list below is not intended to be all encompassing or all inclusive, but represents many of my go-to tools and things I’ve encountered in my time in malware reverse engineering and analysis.

Each entry should contain a succinct description of the tool, and when it should be used. Hopefully this can help analysts who may be entering the field to select the right tool for the job, and speed up malware analysis.

I am open to suggestions for changes, additions, and redactions from this list. Instructions to do so will be located at the bottom of the page.

Relevant Certifications & Courses
#

Malware Analysis Virtual Appliances
#

In Malware Analysis, your VM is your ’toolkit’ and will be constantly evolving. Ensuring you understand your hypervisor and the virtual machines running on them is pivotal to increasing efficiency and efficacy. While there are predominantly two de-facto standards for Malware Analysis, many of these VM’s use tools readily available, so feel free to experiment and build your own.

  • Mandiant FLARE-VM - A Windows Malware Analysis lab generation script that loads the virtual machine with numerous critical tools for Malware Analysts, Security Operations Analysts, and DFIR specialists.
  • REMnux- An Ubuntu based virtual machine created by Lenny Zeltser specifically for reverse engineering malware. Often deployed directly as a virtual appliance with a simple setup to facilitate consistent machine reproduction at scale.

Static Analysis
#

Static analysis is the act of making inferences about code without requiring that code be ran. When well-automated and consistent, static analysis will represent the absolute fastest information to triage (or potentially even verdict) a piece of software.

Static analysis is heavily enumerated by threat actors in an attempt to hide their code; many anti-malware engines utilize static analysis in the form of signature detection to verdict files. This means static analysis, while very powerful, varies widely in its efficacy.

Static Properties
#

Static properties of code are generally derived from headers or strings within the code itself. Static properties should be the ‘first-stop’ for analysts to establish a baseline understanding of what you may be working with. This includes things like static deobfuscators, magic bytes/file header parsers, etc.

  • Unix file - the file command is incredibly useful for grabbing information about any given binary, including arch, dynamic/static linking and debugging symbols.
  • Detect-It-Easy- Similar to Linux’s file command, but with extended functionality including a disassembler, entropy analysis calculator, string finder, and more.
  • PEStudio- Malware CERT & SOC tool to parse artifacts from executable files without necessitating the use of a heavier decompiler/disassembler. Heavily focused on initial triage.
  • Mandiant capa - Capa statically analyzes executable (PE, ELF, NET, shellcode, etc.) files and makes inferences about what the code is capable of performing. Includes ATT&CK mappings.
  • GNU Strings - Included with virtually all modern Linux distributions, pulls successive ASCII characters of a given length out of any file.
  • Sysinternals Strings - A Windows version of strings for Linux.

General Purpose Decompilers & Disassemblers
#

  • HexRays IDA Pro- The most widely deployed Software Reverse Engineering toolkit; IDA Pro is incredibly powerful and represents the industry standard in decompilation and disassembly, with a slew of additional features such as an embedded console and API to facilitate custom tooling.
  • Ghidra- A reverse engineering toolkit developed by the National Security Agency (Yes, that one.) Ghidra was a long-kept secret of the NSA before it was finally released to the public. Ghidra has several extremely powerful extensions, such as Ghidrathon, Mandiant’s Python 3 scripting engine for Ghidra.
  • Vector35 Binary Ninja - A newcomer to the reverse engineering tooling ecosystem; Binary Ninja focuses on user experience with a modern UI and an incredibly robust intermediate language. Also contains a scripting engine for programmatic access.

Domain Specific Tooling
#

Static Deobfuscation
#
  • Mandiant FLARE Floss- Strings, but for obfuscation! This includes strings that are constructed on the stack, as well as strings decoded in functions.
  • Cyberchef- A graphical, recipe-style general static property parser. Often used for deobfuscation, decryption, and decoding.
  • Binary Refinery - A Python-based implementation of Cyberchef. Focused on command-line usage, and possess a strong set of Python bindings.

Dynamic Analysis
#

Dynamic analysis, by comparison, is the act of running some or all of the target software to observe how it behaves. This may include the use of debuggers, which will allow analysts to step through functions. It also includes the most time-effective and consistent analysis technique of simply observing the changes to the system from the baseline.

Debuggers
#

Debuggers allow an analyst to walk line by line through an instruction set of a program. Most mature programming languages will have some sort of debugger specification, including those that are compiled. While this is not an all exhaustive list, becoming familiar with debuggers is pivotal to understanding and dissecting malicious behaviors, especially in heavily obfuscated binaries.

  • x64dbg - The go-to debugger for Windows.
  • GNU Debugger - GDB - The go-to debugger for Linux; a common inclusion in virtually every Linux distribution.

Domain Specific Tooling
#

  • Frida - Allows for arbitrary injection of code into a running process. This is useful because it often allows us to easily gain control flow execution of a running process, often facilitating things like runtime deobfuscation, DLL hooking and unhooking, etc.
  • Angr - A symbolic execution framework that is commonly used in Capture the Flags, also has some practical uses against obfuscation.

Logging & Observability
#

Logging and observability is pivotal to dynamic analysis. Understanding what changes occurred to a machine as malware was ran is important, and ensuring you have proper instrumentation in place the first time can prevent tedious troubleshooting, virtual machine snapshotting and reverting, etc.

  • SysInternals Process Monitor - A real time feed of information such as registry modifications, thread activity, etc. Highly useful for detecting registry modifications and file handle operations in real time.
  • SysInternals Sysmon - A service & device driver designed to achieve persistent Windows Event log enrichment. Contains the ability to log full command line arguments for process trees, automatic hashing of process image files, and various other enrichments that are essential to proper Windows event introspection.
  • Chainsaw - While not a dynamic analysis tool directly, a worthwhile mention with the inclusion of the above– Chainsaw can be used to rapidly parse Windows event logs (and Sysmon logs).
  • IppSec’s PowerSiem - A PowerShell script to ’tail’ or follow the end of the Sysmon Event log. Extremely useful for seeing a live feed of what a program may be doing at any given time.
  • RegShot Snapshot the Windows Registry Hive before and after process execution and compare changes. Incredibly powerful for rapid detection of registry persistence footholds.

Network Tools
#

Many malicious programs will communicate with command and control (C2) at some point in their execution. Capturing these communications can give analysts actionable indicators of compromise, and gives insight into how the program may be behaving and what it may be accomplishing.

  • Wireshark - The de-facto packet capturing and network traffic monitoring solution. The ability to capture network communications can allow analysts to make decisions about exfiltrated data and C2 protocols, as well as identifying C2 infrastructure.
  • Fiddler - An incredibly powerful networking toolkit for HTTP communications. Allows the proxying and capturing of specific HTTP(S) communications, and can be used to rapidly identify C2 behaviors.
  • BurpSuite - An application security testing suite similar to Fiddler that lends itself well to debugging HTTP(S) communications from a given program. Both Fiddler and Burpsuite contain the ability to proxy outbound HTTPS connections through its own interface, giving insight into SSL/TLS communications.
  • Mandiant FLARE FakeNet-NG - A dynamic network analysis tool, FakeNet simulates network services and captures information about these communications. FakeNet can redirect and reroute all network traffic, and gives granular control over network behaviors.

Memory Forensics
#

Memory forensics is the art of capturing live or dumped memory artifacts, and parsing them for relevant information. Memory dumps are often provided as part of online triaging, and can be incredibly effective for dealing with obfuscated or memory-resident malware.

  • Volatility 3- Volatility 3 stands out in this category as the most comprehensive, complete, and reliable tool to parse, identify, and extract memory resident artifacts. It is operating system agnostic, and comes with numerous modules to assist in recovery of information or behavioral analysis.

Tradecraft & Demonstrations
#

This is a non-exhaustive list of videos I found insightful in discussion of general concepts. In the future, as I expand this knowledgebase, this may encompass specific tutorials or analysis articles I’ve written for the purposes of teaching and demonstration.

General Resources
#

  • crow - An Introduction to Malware Analysis - A gentle introduction to the field of malware analysis, covers a variety of topics at face value, and represents an excellent ‘start from zero’ point for Malware Analysts.

Windows Executables & DLL’s
#

Unix & MacOS Binaries
#

  • Low Level Learning - ESXiArgs Ransomware - Analyzing general Linux ransomware. An excellent demonstration of an analysts’ mindset when it comes to approaching malware and the general decision making process.

Non-Native Language and Script Analysis
#

Memory Forensics
#

Network Tools
#

  • Chris Greer - Malware Analysis With Wireshark - TrickBot malware analysis focusing on utilizing Wireshark as a basis for the analysis. Discusses the methodology and approach behind diagnosing PCAP’s for critical analyst information.
  • MalwareAnalysisForHedgehogs - Fun With Fiddler - Basic malware analysis utilizing Fiddler as the basis for analysis with a heavy focus on simulating the C2 framework and execute the malware. (This is quite old and Fiddler is a bit different now, but there isn’t much on the Internet geared towards Malware Analysis with Fiddler, and the concepts remain the same.)

Suggesting Changes
#

As discussed in the start of this article, I am open to additions to this list! Comprehensive malware analysis resources are difficult to come by, and it is my hope that by giving back to the community, we can equip Cybersecurity professionals at all levels for success. If you would like to suggest a change, please visit my Github blog repository and create a pull request. No specific format is necessary, simply listing the tool (preferably with a link to the primary maintainer’s repository or website) is enough. I will accept any elaboration on why it should be added, or do the research myself if necessary to determine if something should be included.

Thank you!