Star on GitHubStar1.1k stars

Tool

Joern

Static code analysis platform that parses source code, JVM bytecode and executables into code property graphs held in a graph database and queried with a Scala-based language from an interactive shell or server mode. Frontends cover C/C++, Java, JavaScript, Python, Kotlin, PHP, Go, Ruby, Swift, C#, Rust and ABAP source, JVM bytecode and APK/DEX files through Soot, and binaries loaded through an embedded Ghidra, which the documentation lists as x86/x64 support. It adds a static taint-tracking engine, the joern-scan query database of vulnerability patterns, and export of AST, CFG, PDG or whole-graph views to DOT, GraphML, GraphSON or Neo4j CSV.

Targets
App · Binary
Category
Native analysis tools
Relationship
Foundation tool
Sources reviewed

Requirements & limits

  • Release at review: v4.0.660, published 2026-10-19; the README says releases are created automatically once a day, and the reviewed master commit is three commits ahead of that tag. Each release ships joern-cli zips for Linux, macOS and Windows on x86_64 and arm64 plus joern-install.sh, and the README also documents ghcr.io/joernio/joern Docker images, with an AlmaLinux 8 variant for CPUs without SSE4.2.
  • The README requires JDK 21 and says other versions have not been properly tested; gcc and g++ are optional, for discovering C/C++ system headers. Source builds use sbt, with an experimental partial Bazel setup. Inputs are the user's own source trees, class, JAR, APK or DEX files, or executables.
  • Binary support is the ghidra2cpg frontend, built on a bundled Ghidra 12.2 package. It has specific passes for MIPS and ARM/AArch64 and routes every other processor through its x86 pass; its README notes that varargs are not handled properly. The documentation's maturity table rates C/C++ and Java very high, JavaScript, Python and x86/x64 via Ghidra high, JVM bytecode, Kotlin, PHP, Go and Swift medium, and Ruby and C# medium-low; the Rust and ABAP frontends in the reviewed tree are not rated there.
  • Apache-2.0; CITATION.cff still names version 2.0, released 2024-01-18. The project describes itself as a tool for vulnerability discovery and static program analysis research; query and taint results describe the generated graph, not observed runtime behavior.

About this entry

The description was reviewed against primary sources.

Report an outdated entry Suggest a translation fix

Primary sources

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

More in Native binaries

All 269 entries in Native binaries

↑↓ move↵ open⌘↵ new tab