工具

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。

使用条件与局限

  • 审阅时的版本为 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 版。项目自称用于漏洞挖掘和静态程序分析研究;查询与污点分析结果反映的是生成的代码图,而非实际运行行为。未确立与 REA 的关联,本次审阅未构建、安装或运行任何内容。

关于此条目

类型
工具
类别
原生分析工具
关联
基础工具
目标
应用 · 二进制

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

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

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

原生二进制分区全部 89 项资源