← all repositories
mandiant/stringsifter

Teaching a model to surface the malware strings that actually matter

A learning-to-rank tool that reorders malware strings by usefulness, because reverse engineers have better things to do than scroll.

758 stars Python Domain AppsData Tooling
stringsifter
Collecting fresh signals — velocity needs a few days of history.
collecting data…
star history

What it does

StringSifter is a machine learning utility that ingests raw text fragments extracted from binaries—typically via strings or the related FLOSS deobfuscator—and reorders them by predicted relevance to malware analysis. It ships with its own extractor, flarestrings, and a ranking command, rank_strings, designed to be piped together or dropped into existing workflows. The goal is to push interesting artifacts toward the top of the list so analysts spend less time wading through noise.

The interesting bit

The model was trained on the EMBER dataset using weak supervision to generate ordinal labels, then fitted with LightGBM under a learning-to-rank objective—essentially treating string triage as a search-ranking problem rather than simple classification. It can also consume arbitrary string lists from memory dumps or sandbox traces, not just static binaries.

Key highlights

  • Ranks strings by predicted malware-analysis relevance using gradient-boosted decision trees.
  • Includes flarestrings, a cross-platform strings replacement to ensure consistent extraction behavior.
  • Accepts piped input and supports batch processing for folder-wide triage.
  • Compatible with FLOSS output for ranking obfuscated or stack-constructed strings.
  • Runs fully offline with no external API dependency.

Caveats

  • Neither the labeled training data nor the training code is publicly available, so the model is essentially a black box.
  • Platform strings implementations vary wildly; the README explicitly recommends using the bundled flarestrings to avoid inconsistent extraction behavior.

Verdict

Worth a look if you routinely sift through bulk strings output during incident response or reverse engineering. Skip it if you need a fully transparent, retrainable model or if your pipeline already filters strings effectively through other means.

Frequently asked

What is mandiant/stringsifter?
A learning-to-rank tool that reorders malware strings by usefulness, because reverse engineers have better things to do than scroll.
Is stringsifter open source?
Yes — mandiant/stringsifter is open source, released under the Apache-2.0 license.
What language is stringsifter written in?
mandiant/stringsifter is primarily written in Python.
How popular is stringsifter?
mandiant/stringsifter has 758 stars on GitHub.
Where can I find stringsifter?
mandiant/stringsifter is on GitHub at https://github.com/mandiant/stringsifter.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.