# 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.

- Type: Tool
- Targets: App · Binary
- Category: Native analysis tools
- Relationship: Foundation tool
- Sources reviewed: 2026-10-20
- Added to the catalog: 2026-11-02
- Original resource: <https://github.com/joernio/joern>
- Primary source: <https://github.com/joernio/joern/blob/7f886b32b02ec770668dbc79176273cb8c62e319/README.md>
- Catalog page: <https://awesomerea.org/resources/joern/>
- Record JSON: <https://awesomerea.org/resources/joern/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/joern/index.md)

## 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.

## Primary sources

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>

## More in Native binaries

- [Speakeasy](https://awesomerea.org/resources/speakeasy/index.md) · Tool
- [LazyIDA](https://awesomerea.org/resources/lazyida/index.md) · Tool
- [Tiny Tracer](https://awesomerea.org/resources/tiny-tracer/index.md) · Tool
- [Ponce](https://awesomerea.org/resources/ponce/index.md) · Tool
- [DRAKVUF Sandbox](https://awesomerea.org/resources/drakvuf-sandbox/index.md) · Tool
- [HexRaysPyTools](https://awesomerea.org/resources/hexrayspytools/index.md) · Tool

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
