# joern **Repository Path**: nocbtm/joern ## Basic Information - **Project Name**: joern - **Description**: No description available - **Primary Language**: C - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-04-20 - **Last Updated**: 2022-04-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Joern - The Bug Hunter's Workbench === [![release](https://github.com/joernio/joern/actions/workflows/release.yml/badge.svg)](https://github.com/joernio/joern/actions/workflows/release.yml) [![Gitter](https://img.shields.io/badge/-Discord-lime?style=for-the-badge&logo=discord&logoColor=white&color=black)](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 ## Requirements - JDK 11 (newer 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 Compiling (synthetic)/ammonite/predef/interpBridge.sc Compiling (synthetic)/ammonite/predef/replBridge.sc Compiling (synthetic)/ammonite/predef/DefaultPredef.sc Compiling /home/tmp/shiftleft/joern/(console) ██╗ ██████╗ ███████╗██████╗ ███╗ ██╗ ██║██╔═══██╗██╔════╝██╔══██╗████╗ ██║ ██║██║ ██║█████╗ ██████╔╝██╔██╗ ██║ ██ ██║██║ ██║██╔══╝ ██╔══██╗██║╚██╗██║ ╚█████╔╝╚██████╔╝███████╗██║ ██║██║ ╚████║ ╚════╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝ joern> ``` If the installation script fails for any reason, try ``` ./joern-install --interactive ``` ## QueryDB (queries plugin) Quick way to develop and test QueryDB: ``` sbt stage ./querydb-install.sh ./joern-scan --list-query-names ``` The last command prints all available queries - add your own in querydb, run the above commands again to see that your query got deployed. More details in the [separate querydb readme](querydb/README.md) ## Javasrc2cpg (a source-based frontend for Java) See details in [the javasrc2cpg readme](joern-cli/frontends/javasrc2cpg/README.md)