Willi Ballenthin 761fa4f012 Map the whole file regardless of the file pointer
MapViewOfFile and ZwMapViewOfSection read the backing file from its
current pointer and left the pointer at the end. A view made after a
ReadFile started at the wrong offset, a second view of a mapping was
empty, and a later ReadFile read nothing. The views now read the
whole file and keep the pointer.
2026-10-08 20:29:04 +01:00
2026-10-08 20:08:50 +01:00
2026-10-08 20:08:50 +01:00
2026-10-08 20:17:52 +01:00
2020-08-21 17:05:28 -04:00
2026-03-02 19:29:35 +01:00

Speakeasy

Speakeasy is a Windows malware emulation framework that executes binaries, drivers, and shellcode in a modeled Windows runtime instead of a full VM. It emulates APIs, process/thread behavior, filesystem, registry, and network activity so samples can keep moving through realistic execution paths. You can run it from the speakeasy CLI for fast triage or embed it as a Python library and consume structured JSON reports.

Background context: Mandiant's overview post.

Quick start

Install from PyPI:

python3 -m pip install speakeasy-emulator

Run a sample and inspect high-level report fields (replace sample.dll with your target):

speakeasy -t sample.dll --no-mp -o report.json 2>/dev/null
jq '{sha256, arch, filetype, entry_points: (.entry_points | length)}' report.json
{
  "sha256": "30ec092d122a90441a2560f6778ef8233c98079cd34b7633f7bbc2874c8d7a45",
  "arch": "x86",
  "filetype": "dll",
  "entry_points": 3
}

Executable proof for this snippet: doc/readme-quickstart-showboat.md.

Documentation map

Start here

CLI usage

Reports, configuration, and runtime behavior

Debugging and extension

Questions and help

Start with doc/help.md.

If you still need help, open an issue at github.com/mandiant/speakeasy/issues.

S
Description
Windows kernel and user mode emulation.
Readme
4.2 MiB
Languages
Python 99.8%
C 0.1%