joern
3,636
Stars
476
Forks
40
Watchers
295
Open Issues
Apache-2.0
许可证
Scala
语言
2019-03-14
创建时间
2026-11-12
最近更新
项目能做什么
Joern 是一款开源代码分析与漏洞挖掘平台。它能将源码、字节码或二进制文件解析为“代码属性图(CPG)”,并存入图数据库中。开发者可以用基于 Scala 的专用查询语言搜索代码图结构,轻松完成跨语言的静态程序分析与漏洞排查。
来源:AI 基于仓库事实生成
· 内容以仓库实际 README 为准
使用说明 查看原始 README 原仓库文档
中文使用说明暂未生成。下面保留原仓库 README 摘录,命令与配置均以原文为准。
原始 README 摘录(英文原文,节选前 3000 字符)
Joern - The Bug Hunter's Workbench
===
[](https://github.com/joernio/joern/actions/workflows/release.yml)
[](https://index.scala-lang.org/joernio/joern)
[](https://github.com/joernio/joern/releases/)
[](https://discord.com/invite/vv4MH284Hc)
Joern is a platform for analyzing source code, bytecode, and binary
executables. It generates code property graphs (CPGs), a graph
representation of code for cross-language code analysis. Code property
graphs are stored in a custom graph database. This allows code to be
mined using search queries formulated in a Scala-based domain-specific
query language. Joern is developed with the goal of providing a useful
tool for vulnerability discovery and research in static program
analysis.
Website: https://joern.io
Documentation: https://docs.joern.io/
Specification: https://cpg.joern.io
## News / Changelog
- Joern v4.0.0 [migrates from overflowdb to flatgraph](changelog/4.0.0-flatgraph.md)
- Joern v2.0.0 [upgrades from Scala2 to Scala3](changelog/2.0.0-scala3.md)
- Joern v1.2.0 removes the `overflowdb.traversal.Traversal` class. This change is not completely backwards compatible. See [here](changelog/traversal_removal.md) for a detailed writeup.
## Requirements
- JDK 21 (other versions _might_ work, but have not been properly tested)
- _optional_: gcc and g++ (for auto-discovery of C/C++ system header files if included/used in your C/C++ code)
## Quick Installation
```
wget https://github.com/joernio/joern/releases/latest/download/joern-install.sh
chmod +x ./joern-install.sh
sudo ./joern-install.sh
joern
██╗ ██████╗ ███████╗██████╗ ███╗ ██╗
██║██╔═══██╗██╔════╝██╔══██╗████╗ ██║
██║██║ ██║█████╗ ██████╔╝██╔██╗ ██║
██ ██║██║ ██║██╔══╝ ██╔══██╗██║╚██╗██║
╚█████╔╝╚██████╔╝███████╗██║ ██║██║ ╚████║
╚════╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝
Version: 2.0.1
Type `help` to begin
joern>
```
If the installation script fails for any reason, try
```
./joern-install --interactive
```
## Development Requirements
- [java](https://jdk.java.net/)
- [sbt](https://www.scala-sbt.org)
## Run unit and integration tests locally
Unit tests:
```bash
sbt test
```
(sbt 2.x runs tests incrementally, skipping ones that already passed on unchanged inputs;
use `sbt testFull` to force a full run, e.g. to reproduce CI behavior.)
Integration tests:
```bash
# script/console tests that drive the real launchers (not part of `sbt test`; they need a staged c2cpg):
sbt "c2cpg/stage ; integrationTests/test"
# distribution tests:
sbt joerncli/stage querydb/createDistribution
python -m pip install pexpect # wexpect on Windows
python -u ./testDistro.py
```
There is an
阅读完整原文
项目深度分析 AI 生成
企业级预置规则SAST与CI/CD扫描插件
| 产品构想 | 基于Joern引擎包装开箱即用的DevSecOps扫描器,将原本需要手动编写Scala CPG查询的高门槛操作封装为覆盖CWE/OWASP Top 10的自动化检测工具,输出标准SARIF报告。 |
| 核心功能 | 一键集成GitHub Actions/GitLab CI、预置500+高危漏洞规则库、误报过滤与污点流可视化报告。 |
| 目标用户 | 中大型科技企业安全团队、DevSecOps工程师。 |
| 难度/周期 | 高 · 4-6个月 · 成本:中等(持续测试集群、规则库持续研发与验证) |
| 收费模式 | 商业许可订阅(按代码仓库数或开发者席位收费) |
| 竞争风险 | 面对Snyk、CodeQL、Checkmarx等成熟商业工具的直接竞争,规则丰富度和误报控制难度极大。 |
| 依据 | 已验证事实 |
定制化代码审计与专属0-day漏洞模式编写服务
| 产品构想 | 针对企业高价值核心资产(如C/C++底层基础组件、金融Java系统),提供基于Joern的深度代码审计服务,并为其定制专属CPG检测查询脚本。 |
| 核心功能 | 人工代码属性图建模、复杂污点分析定制、私有危险函数溯源、针对特定历史漏洞的变种挖掘脚本交付。 |
| 目标用户 | 金融机构、智能硬件/IoT厂商、基础软件开发商。 |
| 难度/周期 | 高 · 按项目交付(单项目1-2个月) · 成本:低(主要为资深安全专家工时) |
| 收费模式 | 高客单价专家咨询/服务费(单次项目数万至数十万元) |
| 竞争风险 | 重人力模式难以规模化,且极度依赖高级静态分析与安全审计复合型人才。 |
| 依据 | 数据支持的判断 |
AI辅助的Joern查询生成与图分析Web IDE(SaaS/私有化)
| 产品构想 | 搭建低门槛可视化代码属性图分析平台,结合LLM将安全人员的自然语言(如'寻找未经验证的memcpy输入')自动转换为Joern Scala查询,并提供交互式图谱溯源UI。 |
| 核心功能 | Natural-to-CPG查询转换、Web交互式控制流/数据流图展示、团队协作查询共享库、Docker化一键分析集群。 |
| 目标用户 | 安全分析师、红蓝对抗渗透测试团队、初中级安全研究员。 |
| 难度/周期 | 中等 · 2-3个月 · 成本:低到中等(LLM API调用与图可视化前端开发) |
| 收费模式 | SaaS订阅制(Pro/Team版)及企业私有化部署授权。 |
| 竞争风险 | LLM生成的Scala图查询语法和逻辑准确率可能不足,导致高调试成本或查询失败。 |
| 依据 | AI推测 |
AI 基于仓库公开数据分析生成,含推测成分,不构成收益承诺。
报告会保存到 个人中心
竞品与相似项目 GitHub Search 真实检索
相似项目数据正在完善中,暂不展示(避免误导)
项目优势与风险
| 技术成熟度 | 创建于 2019-03-14,近 30 天仍在推送,发布过 100 个 Release |
| 社区活跃 | Star 3,636 / Fork 476 / Issue 295(数据支持,可自行核实) |
| 许可证 | Apache-2.0 |
| 主要风险 | 上游项目方向可能变化;同赛道竞争者较多(见竞品表);热度与需求不完全等价 |
安装与使用
快速开始(以仓库 README 为准)
git clone https://github.com/joernio/joern.git cd joern docker compose up -d # 或参考 README 中的 docker run 命令
术语说明:Docker=应用容器(把程序和依赖打包运行);API Key=调用外部服务的密钥;Git Clone=把仓库代码下载到本地。常见错误:API Key 未配置 / 端口占用 / 数据库连接失败,多数项目在 README 的 Troubleshooting 章节有说明。