vulnhuntr
vulnhuntr 基于 llm+静态分析 来挖掘 Python 项目安全漏洞。
workflow
flowchart TD
C[收集代码文件]
C --> D{用户指定 --analyze 参数?}
D -->|是| E[确定分析路径(绝对或相对)]
D -->|否| F[扫描网络相关文件]
E --> G[设置 files_to_analyze]
F --> G
G --> H[初始化LLM(用于README总结)]
H --> I[获取README内容]
I --> J{README存在?}
J -->|是| K[调用LLM总结README]
J -->|否| L[设置summary为空]
K --> M[提取总结内容]
L --> N[构建系统提示词(包含README总结)]
M --> N
N --> O[重新初始化LLM(带系统提示)]
O --> P[遍历 files_to_analyze 中的每个文件]
P --> Q[读取文件内容]
Q --> R{文件有内容?}
R -->|否| S[跳过文件]
R -->|是| T[构建初始分析提示]
T --> U[调用LLM进行初始分析]
U --> V[打印初始报告]
V --> W{置信度 > 0 且有漏洞类型?}
W -->|否| X[结束文件分析]
W -->|是| Y[遍历每个漏洞类型]
Y --> Z[初始化二级分析变量]
Z --> AA[循环7次迭代]
AA --> BB[构建漏洞特定提示]
BB --> CC[调用LLM进行二级分析]
CC --> DD[处理上下文请求(提取代码)]
DD --> EE{有新上下文?}
EE -->|是| FF[更新存储,继续循环]
EE -->|否| GG[检查重复上下文]
GG --> HH{重复请求?}
HH -->|否| II[允许一次,继续]
HH -->|是| JJ[停止循环]
FF --> AA
II --> AA
JJ --> KK[打印最终报告]
KK --> Y
X --> P
S --> P
P --> LL[结束]
