Joern は、ソース コード、バイトコード、およびバイナリ実行可能ファイルを分析するためのプラットフォームです。言語間コード分析のためのコードのグラフ表現であるコード プロパティ グラフ (CPG) を生成します。コード プロパティ グラフはカスタム グラフ データベースに保存されます。これにより、Scala ベースのドメイン固有のクエリ言語で作成された検索クエリを使用してコードをマイニングできるようになります。 Joern は、静的プログラム分析における脆弱性の発見と研究に役立つツールを提供することを目的として開発されました。
ウェブサイト: https://joern.io
ドキュメント: https://docs.joern.io/
仕様: https://cpg.joern.io
overflowdb.traversal.Traversal
クラスが削除されています。この変更には完全な下位互換性はありません。詳しい書き方はこちらをご覧ください。 wget https://github.com/joernio/joern/releases/latest/download/joern-install.sh
chmod +x ./joern-install.sh
sudo ./joern-install.sh
joern
██╗ ██████╗ ███████╗██████╗ ███╗ ██╗
██║██╔═══██╗██╔════╝██╔══██╗████╗ ██║
██║██║ ██║█████╗ ██████╔╝██╔██╗ ██║
██ ██║██║ ██║██╔══╝ ██╔══██╗██║╚██╗██║
╚█████╔╝╚██████╔╝███████╗██║ ██║██║ ╚████║
╚════╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝
Version: 2.0.1
Type `help` to begin
joern>
何らかの理由でインストール スクリプトが失敗した場合は、次のことを試してください。
./joern-install --interactive
docker run --rm -it -v /tmp:/tmp -v $(pwd):/app:rw -w /app -t ghcr.io/joernio/joern joern
joern をサーバー モードで実行するには:
docker run --rm -it -v /tmp:/tmp -v $(pwd):/app:rw -w /app -t ghcr.io/joernio/joern joern --server
Almalinux 9 では、CPU が SSE4.2 をサポートする必要があります。 kvm64 VM の場合は、代わりに Almalinux 8 バージョンを使用してください。
docker run --rm -it -v /tmp:/tmp -v $(pwd):/app:rw -w /app -t ghcr.io/joernio/joern-alma8 joern
新しいリリースは 1 日に 1 回自動的に作成されます。より早くリリースが必要な場合、貢献者はリリース ワークフローを手動で実行することもできます。
Joern に貢献していただきありがとうございます。プル リクエストができるだけ早くマージされるようにするためのガイドラインをいくつか示します。
[javasrc2cpg] Addition Operator Fix
。sbt scalafmt Test/scalafmt
実行します。sbt
を開き、 compile
実行して開いたままにしておきます。これにより、次のステップで BSP ビルドを使用できるようになります。BSP project
として開くことを選択します (つまり、 sbt project
ではありません!)Build -> build project
」またはテストを実行して開始できます。 ms-vscode-remote.remote-containers
をインストールしますFolder contains a Dev Container configuration file. Reopen to folder to develop in a container.
Reopen in Container
ボタンを選択して、 .devcontainer/Dockerfile
ファイルによって作成されたコンテナー内のフォルダーを再度開きます。scalameta.metals
サイドバーに切り替え、 BUILD COMMANDS
でimport build
を選択しますimport build
成功すると、Joern 用のコードの作成を開始できるようになります。 QueryDB を開発およびテストする簡単な方法:
sbt stage
./querydb-install.sh
./joern-scan --list-query-names
最後のコマンドは、使用可能なすべてのクエリを出力します。独自のクエリを querydb に追加し、上記のコマンドを再度実行して、クエリがデプロイされたことを確認します。詳細については、別の querydb readme を参照してください。