Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
MalEval — ISSTA 2026论文的官方代码:“知道它是恶意的”就足够了吗?评估LLM在细粒度恶意软件行为审计中的表现 | Kitploit
工具/GitHubGitHub/zhengxr930/maleval
Android安全静态分析代码分析恶意软件分析机器学习论文与研究学习与教育AI 安全
GitHubzhengxr930/maleval

MalEval

ISSTA 2026论文的官方代码:“知道它是恶意的”就足够了吗?评估LLM在细粒度恶意软件行为审计中的表现

查看仓库
5128天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

MalEval

文章: 「知道它是恶意的」就够了吗?评估 LLM 进行细粒度恶意软件行为审计

文章 DOI: 10.1145/3832187

MalEval 是一个用于评估由大型语言模型生成的 Android 恶意软件行为报告的框架。本仓库中的代码实现了两条执行路径:

  1. 从 APK 开始:对 APK 文件运行静态分析,以生成入口点、调用链、函数体和可达函数。
  2. 从产物开始:从预先计算好的静态分析输出出发,生成函数摘要、上下文中间表示、行为报告和评估指标。

发布的数据集单独托管在 MalEval Hugging Face 数据集仓库 中。

该基准包含 255 个 Android 应用:200 个已存档的恶意软件样本、30 个近期恶意软件样本,以及 25 个用作模拟误报的良性应用。有关发布的文件、来源、权利和安全处理说明,请参阅 DATA.md。

仓库结构

root@kitploit:~
info/                Sample metadata for the benign, MalRadar, and new malware splits.
model_registry.yaml Model/provider configuration for LLM-based stages.
DATA.md              Dataset composition, provenance, and access instructions.
LICENSE.txt          License scope and third-party-material exclusions.
CITATION.cff         Machine-readable citation metadata.
src/                 Static analysis, summarization, behavior generation, and metrics code.

数据集应解压后使仓库呈现如下布局:

root@kitploit:~
MalEval/
|-- info/
|-- src/
`-- artifacts/
    |-- apk/
    |-- call_chain/
    |-- entrypoints/
    |-- functions/
    |-- meta_info/
    |-- reachable_func/
    `-- reports/

环境

请使用 Python 3.10 或更高版本。我们建议使用全新的虚拟环境:

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install --upgrade pip
python3 -m pip install -r requirements.txt

在运行基于 LLM 的阶段之前,请在 model_registry.yaml 中配置模型提供商。每个模型条目既可以存储字面值(如 api_key 和 base_url),也可以存储环境变量引用(如 api_key_env 和 base_url_env)。

示例:

root@kitploit:~
models:
  gpt:
    provider: openai
    model: gpt-5
    api_key: <your_openai_key>
    base_url: https://api.openai.com/v1

默认注册表包含 gpt、gpt-5、qwen、deepseek、llama、coder、claude 和 gemini 的条目。如果您更倾向于使用环境变量,请设置 model_registry.yaml 中引用的变量,例如 OPENAI_API_KEY、DEEPSEEK_API_KEY、QWEN3_API_KEY、HUGGINGFACE_API_KEY、ANTHROPIC_API_KEY、GEMINI_API_KEY、 和 。

从 APK 开始

该路径从 artifacts/apk/<split>/ 下的 APK 文件开始,重新生成静态分析产物。split 必须是 malradar、new 或 benign 之一。

运行单个 APK:

root@kitploit:~
sha=<apk_sha256>
python3 src/preparation/run_static_analysis.py \
  --folder malradar \
  --apk "$sha" \
  --output-root results/static_analysis

运行一个小型采样批次:

root@kitploit:~
python3 src/preparation/run_static_analysis.py \
  --folder malradar \
  --sample-size 5 \
  --seed 42 \
  --output-root results/static_analysis

生成的文件写入以下位置:

root@kitploit:~
results/static_analysis/entrypoints/
results/static_analysis/call_chain/
results/static_analysis/functions/
results/static_analysis/reachable_func/

从产物开始

该路径从发布的 artifacts/ 目录开始,使用预先计算好的 functions、call_chain、entrypoints、reachable_func 和 meta_info 文件。

函数摘要

root@kitploit:~
model=gpt
split=malradar
sha=<apk_sha256>

python3 src/preparation/get_functionality_summary.py --model "$model" --folder "$split" --apk "$sha"

省略 --apk 即可运行整个 split。

上下文与无上下文摘要

root@kitploit:~
python3 src/preparation/get_context_summary.py --model "$model" --folder "$split" --apk "$sha"
python3 src/preparation/get_no_context_summary.py --model "$model" --folder "$split" --apk "$sha"

行为报告

root@kitploit:~
python3 src/generate_behavior/get_behavior.py --model "$model" --folder "$split" --flag context --apk "$sha"
python3 src/generate_behavior/get_behavior.py --model "$model" --folder "$split" --flag no_context --apk "$sha"
python3 src/generate_behavior/get_meta_behavior.py --model "$model" --folder "$split" --apk "$sha"

输出写入 results/summary/、results/context_summary/、results/no_context_summary/、results/behavior/、results/no_context_behavior/ 和 results/meta_behavior/ 目录下。

评估指标

生成摘要和行为报告后,使用以下命令计算指标:

root@kitploit:~
python3 src/metrics/run_metrics.py --model "$model" --flag context
python3 src/metrics/run_metrics.py --model "$model" --flag no_context
python3 src/metrics/run_metrics.py --model "$model" --flag meta

要跳过评判模型调用:

root@kitploit:~
python3 src/metrics/run_metrics.py --model "$model" --flag context --skip-eas

还提供了单独的指标脚本:

root@kitploit:~
python3 src/metrics/aec_b_f1.py --model "$model" --flag context
python3 src/metrics/fpcr_tpmr_f1c.py --model "$model" --flag context
python3 src/metrics/eas.py --model "$model" --flag context --split malradar --judge-model gpt-5

最小化验证

无需下载 APK 或配置模型凭据即可检查源代码树:

root@kitploit:~
python3 -m compileall -q src
python3 - <<'PY'
import json
from pathlib import Path

expected = {
    "archived_sample_info.json": 200,
    "latest_sample_info.json": 30,
    "benign_sample_info.json": 25,
}
for name, count in expected.items():
    actual = len(json.loads((Path("info") / name).read_text()))
    assert actual == count, (name, actual, count)
print("metadata check passed: 200 archived malware + 30 recent malware + 25 benign")
PY

可复现性范围

  • 对已发布报告进行指标计算不需要本地模型推理硬件。
  • 重新生成 LLM 输出需要相应的 API 凭据或兼容的自托管端点。
  • 静态分析以及所有对 APK 的处理必须在隔离的研究环境中进行。请勿在个人或生产设备上安装或执行已发布的样本。
  • 托管模型端点的变更可能会影响精确数值的重现。已发布的报告保留了论文所使用的输出。
下载工具
GEMINI_PROJECT
GEMINI_LOCATION