
FLARE floss appliqué à tous les échantillons décompressés+dumpés dans Malpedia, prétraité pour une utilisation ultérieure.
Ce dépôt contient le résultat de l'outil FLARE FLOSS appliqué à tous les échantillons non emballés et vidés dans Malpedia, prétraités pour une utilisation ultérieure.
Nous avons l'intention de mettre à jour cette collection périodiquement.
Lors de la dernière exécution en janvier 2026, 9.202 fichiers associés à 2.136 familles de malwares ont été traités. Le FLOSSing a donné 61.135.522 chaînes brutes, qui ont été nettoyées et dédupliquées pour obtenir 5.666.515 chaînes uniques. Une fois décompressée, la collection occupe actuellement environ 1300 Mo.
La collection de chaînes est fournie sous forme d'un dictionnaire JSON (voir le dossier data) et comporte trois sections :
about : comme un en-tête de fichier, contient des métadonnées sur cette collection.family_to_id : un mappage des identifiants de famille vers les noms de famille, tels que trouvés dans Malpedia (plus quelques bibliothèques).strings : les données réelles, un dictionnaire avec la chaîne comme clé et la valeur étant un dictionnaire avec des informations supplémentaires.En résumé, les données ressemblent à ceci :
{
"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"
]
},
...
Les encodages possibles sont ASCII et UTF-16LE, tandis que les méthodes font référence aux méthodes d'extraction FLOSS decoded, stack, static, tight et language.
Les tags sont dérivés d'un ensemble de heuristiques propres ainsi que basés sur les méthodes et données trouvées dans la branche de développement QUANTUMSTRAND de FLOSS.
Au lieu d'analyser le fichier JSON volumineux à chaque fois, nous fournissons un service web dockerisé qui permet des recherches.
Il utilise falcon comme backend API, WSGI via waitress, proxé pour les déploiements via nginx.
La structure est basée sur awesome-compose mais mise à jour et adaptée pour une utilisation avec falcon et waitress.
Le service prend en charge les recherches uniques via des requêtes GET et les recherches multiples via des requêtes 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"}]}
Consultez le script Python de démonstration pour savoir comment interagir avec le service.
Nous hébergeons également une instance publique de ce service sur strings.malpedia.io.
Voici de la documentation pour le service web.
Un bon cas d'utilisation de cette collection de chaînes est probablement dans les outils d'analyse binaire, nous avons donc construit un plugin compatible avec IDA Pro, Ghidra et Binary Ninja qui le démontre :
Pour fonctionner avec les trois plateformes en même temps, nous utilisons le gui-plugin-template, qui est basé sur hyara. Voici de la documentation pour le plugin, expliquant comment l'installer et le configurer.
Nous avons ajouté un plugin d'intelligence pour Malcat qui recherche toutes les chaînes dans le binaire donné et rend les résultats dans un résultat Kesakode personnalisé.
Pour l'installer, placez simplement le fichier situé dans ./plugins/malcat/MalpediaFlossed.py dans le dossier data/intelligence de Malcat.
Par défaut, l'instance publique strings.malpedia.io est utilisée pour les recherches, mais vous pouvez également définir votre propre endpoint.
/api/query/<needle> face à un chemin encodé en URL, ajout de la capacité pour les requêtes containsLes données sont publiées sous la licence CC BY-SA 4.0, permettant une utilisation commerciale.