PAGES
← all tools
◆ Malware Analysis

FLOSS

v3.2.0 open-source

FLOSS uses advanced static analysis to automatically extract and deobfuscate all strings from malware binaries.

Summary

FLOSS is an open-source (Apache-2.0) command-line tool that automatically extracts and deobfuscates strings from malware binaries, going beyond what a plain strings.exe pass would find by pulling out stack strings, tight strings, and strings decoded at runtime, including those from Go and Rust binaries. It is aimed at malware analysts and reverse engineers doing static analysis on unknown executables, and its README frames it as a drop-in enhancement to the basic strings.exe workflow rather than a replacement for deeper reverse-engineering tools. First committed in 2016 and maintained by 65 contributors, it has seen 208 commits in the past year across six releases, though the most recent release landed 694 days ago.

FLOSS uses advanced static analysis to automatically extract and deobfuscate all strings from malware binaries.

How FLOSS helps

What strings is this binary hiding from a plain static-analysis pass?

walks the binary's stack operations and decoding routines to recover strings never present as flat ASCII/UTF-16 data, catching what a basic strings pass would miss entirely

Is this executable's configuration or C2 data obfuscated on purpose?

separates plaintext static strings from stack strings, tight strings, and runtime-decoded strings, surfacing the categories malware authors typically use to hide domains and file paths

Can I get readable strings out of this Go or Rust sample?

applies language-specific parsing for Go and Rust binaries, recovering strings stored in formats the classic extraction algorithm cannot read, such as UTF-8 without null terminators

How do I hand this analysis to a teammate or feed it into another tool?

emits results as structured output or a standalone report, so the extracted strings can be reviewed or parsed without rerunning the analysis

all 19 features, with the evidence for each →

Languages

Not documented

Features

19 capabilities across 2 capability groups · 6 backed by code, an API document or a real run

Built from FLOSS's releases, docs, README and our own runs. “Seen” marks the month we first spotted a release the vendor didn't date. Group names and tags are our labels.

Compare with peers →

  • FLOSS covers 2 of the 8 investigation and response capabilities we track.

What FLOSS offers you

  • Command-line interface4
  • JSON data export2
  • Scripting language support2
  • CI/CD pipeline integration1
  • Import from a competing product1
  • Python scripting support1
  • Scripting API1
Static malware analysis 9 features Investigation and response since 2016
Static strings extraction shipped Extracts cleartext strings from binary files using a fast static analysis mode similar to standard strings tools, including support for Go and Rust formats. 6 releases · 4 other sources · first seen Apr 2016

Shared capability: Static malware analysis

release

  • Adds basic ELF binary support, enabling string extraction from ELF samples alongside the existing PE support. v3.2.0 · Oct 2026 · source · release history
  • Improves heuristics for finding and extracting stackstrings, enhancing coverage in emulation. v1.5.0 · May 2017 · source · release history
  • Adds --no-filter flag to bypass the new default filtering of false positive deobfuscated strings. v1.5.0 · May 2017 · source · release history
  • Enables static_strings in the default output mode without requiring extra flags v1.3.0 · Jun 2016 · source · release history
  • Adds quiet mode for piping output to grep v1.1.0 · Apr 2016 · source · release history
  • Adds static strings mode for extracting cleartext strings like strings.exe v1.1.0 · Apr 2016 · source · release history

example

  • Extract static strings in machine-readable JSON format for ingestion into a SIEM or dashboard. floss --static-json malware.bin v1.7.0 · Feb 2021 · source
  • Force extraction of all strings without filtering out potential false positives. floss --no-filter <binary_path> v1.5.0 · May 2017 · source
  • Pipe FLOSS output to grep to filter results in a script floss --quiet malware.bin | grep 'HTTP' v1.1.0 · Apr 2016 · source
  • Extract cleartext strings from a binary for quick analysis without decoding floss --static malware.bin v1.1.0 · Apr 2016 · source
Vivisect meta information display shipped Displays meta-information from Vivisect analysis in the output. 4 releases · 1 other source · first seen Nov 2016

Shared capability: Static malware analysis

release

  • Adds FLOSS_LOAD_VIV_WORKSPACE=1 environment variable to explicitly opt in to loading <sample>.viv workspace files, replacing the previous unsafe auto-load behaviour.⁠︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄⁠ v3.2.0 · Oct 2026 · source · release history
  • FLOSS no longer auto-loads <sample>.viv workspace files by default; existing workflows that relied on automatic .viv loading must now set FLOSS_LOAD_VIV_WORKSPACE=1 explicitly. v3.2.0 · Oct 2026 · source · release history
  • FLOSS_SAVE_WORKSPACE now only accepts the values 1, true, yes, or on; other truthy values that previously worked will break. v3.2.0 · Oct 2026 · source · release history
  • Adds display of vivisect analysis meta information in the output. v1.4.0 · Nov 2016 · source · release history

example

  • Safely re-enable vivisect workspace caching for a trusted sample to speed up repeated analysis runs. FLOSS_LOAD_VIV_WORKSPACE=1 floss malware.exe v3.2.0 · Oct 2026 · source
Go and Rust string extraction shipped Detects binaries compiled with Go or Rust and extracts embedded strings from those specific formats. 4 releases · first seen Jun 2023

Shared capability: Static malware analysis

release

File and path analysis verified Analyzes a specified file or directory path. 3 other sources · first seen Dec 2023

Shared capability: Static malware analysis

Also counts toward: Command-line interface

command line

Library function identification via FLIRT signatures shipped Identifies known library functions in binaries using built-in FLIRT signatures without requiring external plugin files. 2 releases · first seen Jun 2022

Shared capability: Static malware analysis

release

  • Python package now contains the signature files to identify library functions v2.1.0 · Aug 2022 · source · release history
  • library function recognition via FLIRT signatures enables identification without external plugins v2.0.0 · Jun 2022 · source · release history
Shellcode analysis shipped Enables the direct analysis of shellcode from raw binary files. 2 releases · first seen Nov 2016

Shared capability: Static malware analysis

Also counts toward: JSON data export

release

  • Enables writing analysis results to a JSON file instead of the default text format. 1.6.0 · Jun 2020 · source · release history
  • Adds ability to analyze shellcode directly from raw binary files. v1.4.0 · Nov 2016 · source · release history
Ghidra import support shipped Imports analysis data from Ghidra workspaces. 1 release · first seen Oct 2026

Shared capability: Static malware analysis

Also counts toward: Import from a competing product

release

Decoding routine identification plugin shipped Identifies decoding routines in binaries based on suspicious mov instructions. 1 release · first seen Nov 2016

Shared capability: Static malware analysis

release

  • Adds a new plugin that identifies decoding routines based on suspicious mov instructions. v1.4.0 · Nov 2016 · source · release history
Radare2 scripting support shipped Adds integration with Radare2 (r2) for automated reverse engineering workflows. 1 release · first seen Jun 2016

Shared capability: Static malware analysis

Also counts toward: Scripting language support

release

  • Adds r2 scripting support for automated reverse engineering workflows v1.3.0 · Jun 2016 · source · release history
Malware sandbox analysis 1 feature Investigation and response since 2016
Enhanced emulation API hooks shipped Provides additional API hooks for memory allocation and manipulation to improve emulation coverage for complex binaries. 3 releases · first seen May 2016

Shared capability: Malware sandbox analysis

release

  • Increases API hooks to improve emulation coverage. v1.4.0 · Nov 2016 · source · release history
  • Adds additional API hooks to improve emulation coverage for complex binaries v1.3.0 · Jun 2016 · source · release history
  • Adds additional api hooks for memory allocation and manipulation v1.2.0 · May 2016 · source · release history
Other / not yet classified 9 features Features we have not matched to a capability yet. A suggested match is marked.
Windows right-click menu integration verified Installs or uninstalls a Windows Explorer right-click menu entry for the tool. 2 releases · 2 other sources · first seen Jun 2020

Also counts toward: Command-line interface

release

  • Adds --enable-right-click-menu flag to install the right-click context menu option on Windows v3.1.0 · Apr 2024 · source · release history
  • Adds the --max-emulation-instructions CLI argument to limit emulation steps per function. 1.6.0 · Jun 2020 · source · release history

command line

Analysis result export to JSON verified Exports analysis findings and metadata to a JSON file for programmatic consumption or CI pipeline integration. 1 release · 2 other sources · first seen Jun 2020

Also counts toward: CI/CD pipeline integration, Command-line interface, JSON data export

release

  • Adds --static-json flag to enable static string JSON output format for automated parsing v1.7.0 · Feb 2021 · source · release history

command line

  • output_directory — Directory to write JSON results to. v4.0.0-alpha.1 · Oct 2026 · command-line history

example

  • Export strings and function metadata to JSON for programmatic processing or CI pipelines. floss --json malware.bin > results.json 1.6.0 · Jun 2020 · source
Analysis output destination control verified Allows specifying an output file or directory where analysis results are stored. 2 other sources · first seen Oct 2026

command line

Large file processing support shipped suggested Processes binary files that exceed the default size limit by enabling specific command-line arguments. 1 release · 1 other source · first seen Aug 2022

Suggested capability: Static malware analysis. This is our guess, not confirmed.

Also counts toward: Command-line interface

release

example

  • Analyze malware binaries that exceed the default size limit. floss --large-file /path/to/malware.bin v2.1.0 · Aug 2022 · source
Python library integration shipped Allows the cyber tool to be imported and used as a library within Python scripts for custom automation and integration. 1 release · 1 other source · first seen Apr 2016

Also counts toward: Python scripting support, Scripting API, Scripting language support

release

example

  • Import FLOSS as a library within a Python script for integration import floss # Usage depends on library API which is not explicitly detailed in release notes for specific function calls. v1.1.0 · Apr 2016 · source
Analysis time range filtering verified suggested Limits analysis results to those starting from a specified timestamp. 1 other source · first seen Oct 2026

Suggested capability: Forensic timeline analysis. This is our guess, not confirmed.

command line

String query filtering verified Filters analysis results by querying for a specific string value. 1 other source · first seen Oct 2026

command line

Emulation timeout control shipped suggested Allows limiting the number of instructions executed during emulation to prevent timeouts on obfuscated or complex functions. 1 other source · first seen Jun 2020

Suggested capability: Malware sandbox analysis. This is our guess, not confirmed.

example

  • Limit emulation to prevent timeouts on obfuscated functions during batch analysis. floss --max-emulation-instructions 1000 malware.bin 1.6.0 · Jun 2020 · source
x64dbg database file support shipped suggested Adds the ability to parse and analyze x64dbg database files. 1 release · first seen Nov 2016

Suggested capability: Static malware analysis. This is our guess, not confirmed.

release

Lines in monospace are the tool's own words: help text parsed from its source, or an endpoint from its API document. Under release, a line is our summary of a dated release. Under docs, it is quoted from the tool's own documentation or website. Each links back to the source it came from.

Score card

  1. Shipping velocity releases a month, last 12 months
  2. Documentation quality release-notes rubric, 0–100
  3. Breaking-change discipline how rarely a release breaks users, and notice given
  4. Maintenance risk quiet time against its own cadence, maintainers
  5. Innovation & surface new capabilities, API and MCP surface
  6. Community health
  7. Contributor trend distinct committers, this year against last
  8. Maintainer concentration bus factor now against a year ago
  9. Issue backlog trend issues closed per issue opened, 12 months
  10. Responsiveness median time to a maintainer’s first reply

Nine scores for FLOSS, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.

Score cards are part of every paid plan.

See plans →

Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.

How this is scored
  • Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
  • Documentation quality — the release-notes rubric published on the analytics page, unchanged.
  • Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
  • Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
  • Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
  • Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
  • Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
  • Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.

Release-note detail over time

See how much detail FLOSS puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.

Checking release-note history…

Explore the full chart →

Coverage

Missing something? Tell us

What FLOSS connects to, runs on and detects, read from its release notes and docs. So far: 1 new supported platform.

Show

1 change, tracked since Oct 16, 2026.

  • Oct 162026

    new Basic ELF binary support

    basic ELF support (#1071)

    v3.2.0 Source ↗

How we count

Read from 1 of 13 release notes and docs updates we hold for FLOSS. "First seen" is the earliest note that names something; "last" is the latest. Our history may start partway through FLOSS's life, so an old integration can show a recent first-seen date.

Each change counts once: "added 40 checks" is one line, so the numbers measure how often coverage moves, not how big the catalogue is or how well it detects.

Releases

Show
Coverage in all entries

13 entries

  1. October 20261
  2. April 20241
  3. December 20231
  4. June 20231
  5. August 20221
  6. June 20221
  7. February 20211
  8. June 20201
  9. May 20171
  10. November 20161
  11. June 20161
  12. May 20161
  13. April 20161
    Show
    Coverage in all entries

    13 entries

    Project health

    Issue, contributor and maintainer activity in mandiant/flare-floss, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.

    1. Contributors 15 +9 vs prior 12 months
    2. Maintainers 1 +1 joined · −2 left, last 12 months
    3. Bus factor 1 committers behind half the commits
    4. Community-filed 19% of issues opened, last 12 months
    5. Median time to close 90 days first maintainer reply 22 hours
    6. Open backlog 104 of 547 issues ever filed
    1. Issues opened / month 0 · 4 communitymaintainers
    2. Open backlog 104
    3. Contributors / month 5
    4. Commits / month 32
    5. Stars 4,159
    Issue themes, last 12 months
    • features 4%
    • other 96%

    Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this

    Libraries its release ships

    What its latest release locks, checked against known advisories.

    None of its release's images build from a lockfile we can read.

    Add the badge to your README

    Maintain this project? The badge links readers straight to this page, so they can follow every release here.

    Tracked by Cyber Toolchain Choose a badge style and copy the code →
    browse all tools → score card for your toolchain →