This is a CPG frontend for Soot's Jimple IR. This language frontend is formerly known as Plume.
Requirements:
- >= JDK 11. We recommend OpenJDK 11.
- sbt (https://www.scala-sbt.org/)
- Clone the project
- Build the project
sbt stage
- Create a CPG
./jimple2cpg.sh /path/to/your/code -o /path/to/cpg.bin
- Download Joern with
wget https://github.com/joernio/joern/releases/latest/download/joern-cli.zip unzip joern-cli.zip cd joern-cli
- Copy
cpg.bin
into the Joern directory - Start Joern with
./joern.sh
- Import the cpg with
importCpg("cpg.bin")
- Now you can query the CPG
Some general development habits for the project:
- When making a branch, use the following template
<short-name>/<feature-or-bug-name>
e.g.fabs/control-structure-nodes
. - We currently focus around test driven development. Pay attention to the code coverage when creating new tests and
features. The code coverage report can be found under
./target/scala-2.13/scoverage-report
.