FLARE floss 应用于 Malpedia 中所有解包和转储的样本,并经过预处理以便进一步使用。
此仓库包含对 Malpedia 中所有解包并转储的样本应用 FLARE FLOSS 工具 的结果,经过预处理以供进一步使用。
我们计划定期更新此集合。
在2026年1月的最近一次运行中,处理了与2,136个恶意软件家族相关的9,202个文件。
FLOSSing 产生了61,135,522个原始字符串,经过清洗和去重,缩减至5,666,515个唯一字符串。
解压后,该集合当前大小约为1300 MB。
字符串集合以 JSON 字典形式提供(见文件夹 data),包含三个部分:
about:类似文件头,包含关于此集合的一些元数据。family_to_id:将 family_id 映射到家族名称,如 Malpedia 中所见(外加一些库)。strings:实际数据,一个字典,键为字符串,值为包含一些附加信息的字典。简而言之,数据格式如下:
{
"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"
]
},
...
可能的编码为 ASCII 和 UTF-16LE,而 methods 指 FLOSS 提取方法:decoded、stack、static、tight 和 language。
标签来源于一套自有启发式规则,以及基于 QUANTUMSTRAND(FLOSS 的开发分支)中的方法和数据。
为了避免每次都解析庞大的 JSON 文件,我们提供了一个 Docker 化的网页服务,支持查询。
它使用 falcon 作为 API 后端,通过 waitress 实现 WSGI,部署时通过 nginx 进行代理。
其布局基于 awesome-compose,但已更新并适配了 falcon 和 waitress。
该服务支持通过 GET 请求进行单一查询,以及通过 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"}]}
请查看 demo Python 脚本 了解如何与该服务交互。
我们还在 strings.malpedia.io 上托管了一个该服务的公共实例。
这里是该网页服务的一些 文档。
此字符串集合的一个良好用例可能是在二进制分析工具中,因此我们构建了一个兼容 IDA Pro、Ghidra 和 Binary Ninja 的插件来演示这一点:
为了能同时用于所有三个平台,我们使用了 gui-plugin-template,它基于 hyara。
这里是该插件的一些 文档,说明了如何安装和配置。
我们为 Malcat 添加了一个情报插件,该插件查询给定二进制文件中的所有字符串,并在自定义的 Kesakode 结果中呈现。
要安装,只需将 ./plugins/malcat/MalpediaFlossed.py 文件放入 Malcat 的 data/intelligence 文件夹。
默认使用公共的 strings.malpedia.io 实例进行查询,但您也可以定义自己的端点。
/api/query/<needle> 解码,添加了 contains 查询功能该数据根据 CC BY-SA 4.0 许可证 发布,允许商业使用。