Skip to content

magiclf-ai/IVAgent

Repository files navigation

IVAgent

IVAgent 是一个基于 LLM 的漏洞挖掘系统,支持多种静态分析引擎,并提供一套基于 Markdown 和 LLM 语义评估的测评框架。

IVAgent

核心能力

  • 多引擎分析:source / ida / jeb / abc
  • Skill 驱动分析:统一用 SKILL.md 描述分析目标、污点源、危险 API 和关注点
  • 多 Agent 协作:DeepVulnAgentCodeExplorerAgentTaskExecutorAgent
  • LLM 驱动测评:测试用例、检测结果、评测报告全部走 Markdown
  • 文本化运行产物:除了 sqlite,运行结果还会导出便于阅读的 Markdown 文档

项目结构

IVAgent/
├── ivagent/                  # 核心实现
├── vuln_skills/              # 漏洞挖掘 Skill(分析模式和工作流)
├── coding_skills/            # 开发辅助 Skill(供 coding agent 使用)
├── tests/eval/               # 测评框架
├── tests/testcases/          # 测试用例
├── ivagent_cli.py            # 主 CLI
├── ivagent/web/              # 内建 Web 监控与可视化
└── plans/                    # 方案文档

环境要求

  • Python 3.12+
  • Redis
  • 可用的 LLM OpenAI 兼容接口

如果你使用 source 引擎,只需要 Python、Redis 和 LLM 配置。
如果你使用 ida / jeb / abc,还需要对应后端服务或工具环境。

安装

推荐使用项目内虚拟环境:

python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt

环境变量

最少需要配置:

export OPENAI_API_KEY="your-api-key"
export OPENAI_BASE_URL="http://host:port/v1"
export OPENAI_MODEL="gpt-5.2"

例如:

OPENAI_API_KEY='your-api-key-1' \
OPENAI_BASE_URL='http://192.168.72.1:8317/v1' \
OPENAI_MODEL='gpt-5.2'

Redis

运行分析和测评前,需要先启动 Redis。

例如:

redis-server

如果 Redis 没启动,扫描阶段会直接失败。

执行方式

1. 主分析 CLI

统一入口是 ivagent_cli.py

查看帮助:

.venv/bin/python ivagent_cli.py --help

2. 直接函数扫描

适合对指定函数做深度漏洞分析。

源码分析示例:

.venv/bin/python ivagent_cli.py \
  --skill eval_source_scan \
  --engine source \
  --target tests/testcases/heap_overflow_01/source \
  --source-root tests/testcases/heap_overflow_01/source \
  --function parse_packet

IDA 示例:

.venv/bin/python ivagent_cli.py \
  --skill binary_parser \
  --engine ida \
  --target /path/to/binary.i64 \
  --function sub_140001000

JEB 示例:

.venv/bin/python ivagent_cli.py \
  --skill android_entry \
  --engine jeb \
  --target /path/to/app.apk \
  --function "Lcom/example/LoginActivity;->checkLogin"

ABC 示例:

.venv/bin/python ivagent_cli.py \
  --skill harmony_entry \
  --engine abc \
  --target /path/to/app.abc \
  --function "com.example.EntryAbility.onCreate"

3. Skill 编排执行

适合让 LLM 按 Skill 描述自主规划和执行分析。

.venv/bin/python ivagent_cli.py \
  --skill android_sql_injection \
  --engine source \
  --target /path/to/source \
  --source-root /path/to/source

Web 使用方式

ivagent_cli.pytests/eval 在进入编排执行前会自动确保 Web 服务已启动。

默认访问地址:

http://127.0.0.1:8080

Web 界面可用于查看:

  • LLM 日志
  • Agent 执行树
  • 漏洞列表
  • 运行状态

如需单独调试 Web 服务,可直接运行内部入口:

.venv/bin/python -m ivagent.web.server --profile production

测试与评估

测试和评估的完整工作流请参考:coding_skills/test_and_eval/SKILL.md

快速入口:

.venv/bin/python -m tests.eval.cli --help

Skill 使用

Skill 统一由 skill_parser.py 解析。

示例:

.venv/bin/python - <<'PY'
from ivagent.models.skill_parser import SkillParser
skill = SkillParser().resolve_skill('eval_source_scan', skills_root='vuln_skills')
print(skill.name)
print(skill.engine)
PY

当前评测专用 skill:

说明

  • 当前项目按新方案开发,不做旧方案兼容层
  • 当前测评链路优先使用 Markdown 文档而不是中间 JSON
  • sqlite 仍然保留,用于程序内部统计、查询和导出
  • 对用户查看而言,优先看导出的 Markdown 文件即可

About

IVAgent (Intelligent Vulnerability Agent) 是一个基于大语言模型(LLM)的智能漏洞挖掘 Agent,支持多种分析引擎和二进制/源码分析场景。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors