MCPcopy Index your code
hub / github.com/Yuy0ung/YuC0de

github.com/Yuy0ung/YuC0de @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
130 symbols 291 edges 13 files 47 documented · 36%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

YuC0de (雨蔻)

YuC0de (雨蔻) 是一款无需编译的Java静态应用程序安全测试 (SAST) 工具。它结合了轻量化代码属性图 (CPG) 分析技术与大语言模型 (LLM) 的语义理解能力,能够高效、准确地识别代码中的安全漏洞。YuC0de 通过解析源代码构建属性图,追踪数据流与控制流,并引入 AI 审计模块对检测结果进行二次校验,显著降低了误报率。它支持对 Java 语言项目的安全审计,覆盖 SQL 注入、远程代码执行 (RCE)、服务端请求伪造 (SSRF) 等多种高危漏洞类型。

核心亮点

  • 无需编译:直接对Java源代码进行解析和分析,无需配置复杂的构建环境,极大降低了使用门槛。
  • 双重引擎:融合了基于规则的静态分析引擎与基于 AI 的智能审计引擎,兼顾了检测速度与准确性。
  • 图驱动分析:内置轻量化代码属性图 (CPG) 构建模块,支持深入的数据流分析和污点追踪,能够发现跨函数、跨文件的复杂漏洞。
  • 可视化交互:提供直观的 Web 界面,支持漏洞链路的可视化展示、代码预览以及扫描规则的在线编辑。
  • AI 赋能:自实现类似langgraph架构对扫描结果进行多轮智能研判,自动识别误报并提供修复建议。

快速开始

前置要求

  • Go 1.20+
  • Node.js 16+
  • OpenAI API Key (可选,用于 AI 审计功能)

启动后端

  1. 进入后端目录: bash cd yucode/backend
  2. 下载依赖: bash go mod download
  3. 启动服务: bash go run .

启动前端

  1. 进入前端目录: bash cd yucode/frontend
  2. 安装依赖: bash npm install
  3. 启动开发服务器: bash npm run dev

访问浏览器地址 (默认为 http://localhost:5173) 即可开始使用。

功能展示

主页: image-20260310145310529

AI参数配置: image-20260310145436025

新建扫描任务(可选择是否开启AI审计):

image-20260310145352289

扫描结果详情: image-20260310145529568

AI分析可标记误报,降低人工审核成本: image-20260310145628007

图分析可以查看项目中的类/方法/变量的轻量化CPG上下游节点:

QQ_1773145796663

规则管理,可启用/禁用/新建/删除规则:

image-20260310203247919

规则编辑:

image-20260310203309351

项目结构

yucode/
├── backend/                # 后端核心代码
│   ├── cpg/                # 轻量化代码属性图 (CPG) 分析模块
│   ├── engine/             # 静态分析引擎 (解析器、扫描器、索引器)
│   ├── rules/              # 漏洞扫描规则文件 (YAML)
│   ├── ai_audit.go         # AI 审计逻辑实现
│   └── main.go             # 程序入口
├── frontend/               # 前端 Web 应用
│   ├── src/
│   │   ├── views/          # 页面视图 (任务列表、详情、规则编辑、CPG分析)
│   │   ├── components/     # 通用组件
│   │   └── router/         # 路由配置
│   └── vite.config.js      # Vite 配置文件
└── README.md               # 项目说明文档

Extension points exported contracts — how you extend this code

NodeFunc (FuncType)
(no doc)
backend/pkg/langgraph/graph.go
ConditionalEdgeFunc (FuncType)
(no doc)
backend/pkg/langgraph/graph.go

Core symbols most depended-on inside this repo

next
called by 50
backend/engine/java_parser.go
peek
called by 35
backend/engine/java_parser.go
toRelative
called by 17
backend/engine/scanner.go
extractVariables
called by 9
backend/engine/scanner.go
broadcastTasks
called by 8
backend/main.go
traceBack
called by 8
backend/engine/scanner.go
consume
called by 7
backend/engine/java_parser.go
removeStringContent
called by 7
backend/engine/scanner.go

Shape

Function 67
Method 31
Struct 29
FuncType 2
TypeAlias 1

Languages

Go100%

Modules by API surface

backend/engine/java_parser.go31 symbols
backend/engine/scanner.go29 symbols
backend/main.go24 symbols
backend/pkg/langgraph/graph.go11 symbols
backend/ai_audit.go11 symbols
backend/engine/indexer.go9 symbols
backend/cpg/handler.go8 symbols
backend/cpg/code_parser.go4 symbols
backend/ai_handlers.go2 symbols
backend/cmd/debug/main.go1 symbols

For agents

$ claude mcp add YuC0de \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact