
FLARE floss applicato a tutti i campioni unpacked+dumped in Malpedia, pre-elaborati per un uso successivo.
Questo repository contiene il risultato dello strumento FLARE FLOSS applicato a tutti i campioni estratti e decompressi in Malpedia, pre-elaborati per un utilizzo successivo.
Intendiamo aggiornare questa collezione periodicamente.
Nell’ultima esecuzione di gennaio 2026, sono stati elaborati 9.202 file associati a 2.136 famiglie di malware.
L’applicazione di FLOSS ha prodotto 61.135.522 stringhe grezze, che sono state pulite e deduplicate fino a 5.666.515 stringhe univoche.
Una volta decompressa, la collezione occupa attualmente circa 1300 MB.
La collezione di stringhe è fornita come dizionario JSON (vedi cartella data) e ha tre sezioni:
about: come intestazione del file, contiene alcuni metadati sulla collezione.family_to_id: una mappatura di family_id ai nomi delle famiglie, come presenti in Malpedia (più alcune librerie).strings: i dati veri e propri, un dizionario con chiave stringa e valore un dizionario con alcune informazioni aggiuntive.In breve, i dati appaiono così:
{
"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"
]
},
...
Le codifiche possibili sono ASCII e UTF-16LE, mentre i metodi si riferiscono ai metodi di estrazione FLOSS: decoded, stack, static, tight e language.
I tag derivano da un insieme di euristiche proprie e da metodi e dati presenti nel ramo di sviluppo QUANTUMSTRAND di FLOSS.
Invece di analizzare ogni volta il grande file JSON, forniamo un servizio web dockerizzato che consente ricerche.
Utilizza falcon come backend API, WSGI attraverso waitress, proxy per deployment tramite nginx.
La struttura è basata su awesome-compose ma aggiornata e adattata per l’uso con falcon e waitress.
Il servizio supporta ricerche singole tramite richieste GET e ricerche multiple tramite richieste POST:
$ 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"}]}
Dai un’occhiata allo script Python demo per interagire con il servizio.
Ospitiamo anche un’istanza pubblica di questo servizio su strings.malpedia.io.
Ecco un po’ di documentazione per il web service.
Un buon caso d’uso per questa collezione di stringhe è probabilmente negli strumenti di analisi binaria, quindi abbiamo creato un plugin compatibile con IDA Pro, Ghidra e Binary Ninja che lo dimostra:
Per funzionare con tutte e tre le piattaforme contemporaneamente, utilizziamo il gui-plugin-template, basato su hyara.
Ecco un po’ di documentazione per il plugin, che spiega come installarlo e configurarlo.
Abbiamo aggiunto un plugin di intelligence per Malcat che ricerca tutte le stringhe nel binario dato e visualizza i risultati in un risultato personalizzato di Kesakode.
Per installarlo, basta posizionare il file ./plugins/malcat/MalpediaFlossed.py nella cartella data/intelligence di Malcat.
Per impostazione predefinita, viene utilizzata l’istanza pubblica strings.malpedia.io per le ricerche, ma puoi anche definire il tuo endpoint.
/api/query/<needle> in caso di percorsi urlencoded, aggiunta la funzionalità per query containsI dati sono rilasciati con licenza CC BY-SA 4.0, che ne consente l’uso commerciale.