SkillAgentSearch skills...

Jimple2cpg

Code Property Graph (CPG) frontend for Soot's Jimple IR. Formerly known as Plume.

Install / Use

/learn @joernio/Jimple2cpg
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

jimple2cpg

This is a CPG frontend for Soot's Jimple IR. This language frontend is formerly known as Plume.

release Discord

Setup

Requirements:

  • >= JDK 11. We recommend OpenJDK 11.
  • sbt (https://www.scala-sbt.org/)

Quickstart

  1. Clone the project
  2. Build the project sbt stage
  3. Create a CPG ./jimple2cpg.sh /path/to/your/code -o /path/to/cpg.bin
  4. Download Joern with
    wget https://github.com/joernio/joern/releases/latest/download/joern-cli.zip
    unzip joern-cli.zip
    cd joern-cli
    
  5. Copy cpg.bin into the Joern directory
  6. Start Joern with ./joern.sh
  7. Import the cpg with importCpg("cpg.bin")
  8. Now you can query the CPG

Development

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.

Related Skills

View on GitHub
GitHub Stars6
CategoryDevelopment
Updated1y ago
Forks2

Languages

Scala

Security Score

70/100

Audited on May 22, 2024

No findings