# Joern 代码属性图分析平台

> 静态代码分析平台，将源代码、JVM 字节码和可执行文件解析为代码属性图并存入图数据库，可在交互式 shell 或服务器模式下用基于 Scala 的查询语言检索。前端覆盖 C/C++、Java、JavaScript、Python、Kotlin、PHP、Go、Ruby、Swift、C#、Rust 和 ABAP 源码，借助 Soot 处理 JVM 字节码及 APK/DEX 文件，并通过内置的 Ghidra 加载二进制文件，文档将这部分列为 x86/x64 支持。它还提供静态污点追踪引擎、收录漏洞模式的 joern-scan 查询库，并可将 AST、CFG、PDG 或整图导出为 DOT、GraphML、GraphSON 或 Neo4j CSV。

- 类型：工具
- 目标：应用 · 二进制
- 类别：原生分析工具
- 关联：基础工具
- 来源复核于：2026-10-20
- 收录于：2026-11-02
- 原始资源：<https://github.com/joernio/joern>
- 一手来源：<https://github.com/joernio/joern/blob/7f886b32b02ec770668dbc79176273cb8c62e319/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/joern/>
- 记录 JSON：<https://awesomerea.org/resources/joern/record.json>
- 英文版：[English](https://awesomerea.org/resources/joern/index.md)

## 使用条件与局限

- 审阅时的版本为 v4.0.660，发布于 2026-10-19；README 称每天自动生成一次发布，所审阅的 master 提交比该标签多三个提交。每个版本都提供适用于 Linux、macOS 和 Windows（x86_64 与 arm64）的 joern-cli 压缩包及 joern-install.sh；README 还介绍了 ghcr.io/joernio/joern Docker 镜像，并为不支持 SSE4.2 的 CPU 提供 AlmaLinux 8 版本。
- README 要求 JDK 21，并称其他版本未经充分测试；gcc 和 g++ 为可选项，用于查找 C/C++ 系统头文件。从源码构建使用 sbt，另有实验性的部分 Bazel 构建配置。输入为使用者自己的源码目录、class、JAR、APK 或 DEX 文件，或可执行文件。
- 二进制支持由 ghidra2cpg 前端提供，基于随附的 Ghidra 12.2 软件包。它为 MIPS 和 ARM/AArch64 设有专门的处理流程，其他处理器一律走 x86 流程；其 README 指出可变参数尚未正确处理。文档中的成熟度表将 C/C++ 和 Java 评为很高，JavaScript、Python 以及基于 Ghidra 的 x86/x64 评为高，JVM 字节码、Kotlin、PHP、Go 和 Swift 评为中等，Ruby 和 C# 评为中低；所审源码中的 Rust 和 ABAP 前端未在表中评级。
- 采用 Apache-2.0 许可；CITATION.cff 仍写着 2024-01-18 发布的 2.0 版。项目自称用于漏洞挖掘和静态程序分析研究；查询与污点分析结果反映的是生成的代码图，而非实际运行行为。

## 一手来源

1. <https://github.com/joernio/joern/blob/7f886b32b02ec770668dbc79176273cb8c62e319/README.md>
2. <https://docs.joern.io/>
3. <https://github.com/joernio/joern/blob/7f886b32b02ec770668dbc79176273cb8c62e319/joern-cli/frontends/ghidra2cpg/README.md>
4. <https://github.com/joernio/joern/blob/7f886b32b02ec770668dbc79176273cb8c62e319/joern-cli/frontends/ghidra2cpg/src/main/scala/io/joern/ghidra2cpg/Ghidra2Cpg.scala#L135-L146>
5. <https://github.com/joernio/joern/blob/7f886b32b02ec770668dbc79176273cb8c62e319/joern-cli/frontends/jimple2cpg/src/main/scala/io/joern/jimple2cpg/Jimple2Cpg.scala#L102-L104>
6. <https://github.com/joernio/joern/blob/7f886b32b02ec770668dbc79176273cb8c62e319/joern-cli/build.sbt#L44-L57>
7. <https://github.com/joernio/joern/blob/7f886b32b02ec770668dbc79176273cb8c62e319/project/Versions.scala#L20>
8. <https://github.com/joernio/joern/blob/7f886b32b02ec770668dbc79176273cb8c62e319/joern-cli/src/main/scala/io/joern/joerncli/JoernExport.scala#L34-L50>
9. <https://github.com/joernio/joern/blob/7f886b32b02ec770668dbc79176273cb8c62e319/CITATION.cff>
10. <https://github.com/joernio/joern/blob/7f886b32b02ec770668dbc79176273cb8c62e319/LICENSE>
11. <https://github.com/joernio/joern/releases/tag/v4.0.660>

## 同分区更多条目：原生二进制

- [Speakeasy Windows 恶意软件仿真框架](https://awesomerea.org/zh/resources/speakeasy/index.md) · 工具
- [LazyIDA：IDA 便捷操作插件](https://awesomerea.org/zh/resources/lazyida/index.md) · 工具
- [Tiny Tracer API 调用跟踪工具](https://awesomerea.org/zh/resources/tiny-tracer/index.md) · 工具
- [Ponce IDA 符号执行与污点分析插件](https://awesomerea.org/zh/resources/ponce/index.md) · 工具
- [DRAKVUF Sandbox 虚拟机监控器级恶意软件分析沙箱](https://awesomerea.org/zh/resources/drakvuf-sandbox/index.md) · 工具
- [HexRaysPyTools 结构体重建插件](https://awesomerea.org/zh/resources/hexrayspytools/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
