
FLARE floss angewendet auf alle entpackten und gedumpten Samples in Malpedia, vorverarbeitet für die weitere Verwendung.
Dieses Repository enthält das Ergebnis des FLARE FLOSS Tools, angewendet auf alle entpackten und gedumpten Samples in Malpedia, vorverarbeitet für die weitere Nutzung.
Wir beabsichtigen, diese Sammlung regelmäßig zu aktualisieren.
Im letzten Durchlauf im Januar 2026 wurden 9.202 Dateien verarbeitet, die mit 2.136 Schadsoftware-Familien verbunden waren.
FLOSSing ergab 61.135.522 Rohstrings, die bereinigt und dedupliziert wurden auf 5.666.515 eindeutige Strings.
Nach der Dekomprimierung umfasst die Sammlung derzeit etwa 1300 MB.
Die Stringsammlung wird als JSON-Wörterbuch bereitgestellt (siehe Ordner data) und hat drei Abschnitte:
about: wie ein Dateikopf enthält dies Metadaten zu dieser Sammlung.family_to_id: eine Zuordnung von family_ids zu den Familiennamen, wie in Malpedia zu finden (plus einige Bibliotheken).strings: die eigentlichen Daten, ein Wörterbuch mit dem String als Schlüssel und dem Wert als Wörterbuch mit einigen zusätzlichen Informationen.Kurz gesagt sehen die Daten so aus:
{
"about": {
"author": "Daniel Plohmann // daniel.plohmann<at>fkie.fraunhofer.de",
"date_flossed": "2026-01-06",
"date_published": "2026-01-06",
"floss_version": "floss v3.0.1-0-g3782dc9",
"info": "This collection contains the output of applying the FLARE team's floss tool to all unpacked+dumped samples in Malpedia, with additional information in which families the respective string was found, along with its extraction method and encoding. Processing has been applied to reduce the number of mistakenly extracted data strings with no real value to further analysis, FLOSS QUANTUMSTRAND and own tagging has been applied to enrich the output.",
"license": "Creative Commons BY-SA 4.0",
"num_input_strings": 61135522,
"num_filtered_input_strings": 26844200,
"num_malware_families": 2136,
"num_samples_flossed": 9202,
"num_tagged_strings": 2421776,
"num_unique_strings": 5666515,
"reference": "malpedia.caad.fkie.fraunhofer.de/",
"source": "https://github.com/malpedia/malpedia-flossed"
},
"family_to_id": {
"elf.anchor_dns": 1121,
"elf.angryrebel": 1393,
"elf.babuk": 899,
...
"win.zupdax": 1328,
"win.zxxz": 1732,
"win.zyklon": 689
},
"strings": {
...
"Mozilla/4.0 (compatible; MSIE 6.0; Win32)": {
"encodings": [
"ASCII"
],
"families": [
79,
272,
683,
914,
918,
1000,
1572
],
"family_count": 7,
"methods": [
"static"
],
"string": "Mozilla/4.0 (compatible; MSIE 6.0; Win32)",
"tags": [
"user-agent"
]
},
...
Mögliche Kodierungen sind ASCII und UTF-16LE, während sich Methoden auf die FLOSS-Extraktionsmethoden decoded, stack, static, tight und language beziehen.
Die Tags werden aus einem Satz eigener Heuristiken sowie basierend auf Methoden und Daten abgeleitet, die im QUANTUMSTRAND-Entwicklungszweig von FLOSS zu finden sind.
Anstatt jedes Mal die riesige JSON-Datei zu parsen, stellen wir einen dockerisierten Webservice bereit, der Lookups ermöglicht.
Er verwendet falcon als API-Backend, WSGI'd durch waitress, für Bereitstellungen durch nginx als Proxy.
Das Layout basiert auf awesome-compose, wurde jedoch für die Verwendung mit falcon und waitress aktualisiert und angepasst.
Der Service unterstützt einzelne Lookups als GET-Anfragen und mehrere Lookups als POST-Anfragen:
$ curl https://strings.malpedia.io/api/query/FIXME
{"status": "successful", "data": [{"encodings": ["ASCII"], "families": ["win.kins", "win.vmzeus", "win.zeus_sphinx", "win.citadel", "win.ice_ix", "win.murofet", "win.zeus"], "family_count": 7, "methods": ["static"], "string": "FIXME", "tags": [], "matched": true}, {"matched": false, "string": "NOT_FLOSSED"}]}
$ curl -X POST https://strings.malpedia.io/api/query --data '"FIXME","NOT_IN_THE_DATABASE"'
{"status": "successful", "data": [{"encodings": ["ASCII"], "families": ["win.kins", "win.vmzeus", "win.zeus_sphinx", "win.citadel", "win.ice_ix", "win.murofet", "win.zeus"], "family_count": 7, "methods": ["static"], "string": "FIXME", "tags": [], "matched": true}, {"matched": false, "string": "NOT_IN_THE_DATABASE"}]}
Sehen Sie sich das Demo-Python-Skript an, um zu erfahren, wie Sie mit dem Service interagieren können.
Wir hosten auch eine öffentliche Instanz dieses Services unter strings.malpedia.io.
Hier ist eine Dokumentation für den Webservice.
Ein guter Anwendungsfall für diese Sammlung von Strings ist wahrscheinlich in binären Analysetools, daher haben wir ein Plugin gebaut, das mit IDA Pro, Ghidra und Binary Ninja kompatibel ist und dies demonstriert:
Um mit allen drei Plattformen gleichzeitig zu arbeiten, verwenden wir die gui-plugin-template, die auf hyara basiert.
Hier ist eine Dokumentation für das Plugin, die erklärt, wie man es installiert und konfiguriert.
Wir haben ein Intelligence-Plugin für Malcat hinzugefügt, das alle Strings im angegebenen Binary nachschlägt und die Ergebnisse in einem benutzerdefinierten Kesakode-Ergebnis darstellt.
Zur Installation legen Sie die Datei unter ./plugins/malcat/MalpediaFlossed.py einfach in den Ordner data/intelligence von Malcat.
Standardmäßig wird die öffentliche strings.malpedia.io-Instanz für Lookups verwendet, Sie können aber auch Ihren eigenen Endpunkt definieren.
/api/query/<needle> bei URL-codiertem Pfad, Fähigkeit für contains-Abfragen hinzugefügtDie Daten werden unter der CC BY-SA 4.0-Lizenz veröffentlicht, die kommerzielle Nutzung erlaubt.