bytecodedl
jvm bytecodeベースのdatalogのようなcodeqlの宣言的静的分析ツール
なぜbytecodedl
bytecodedlという名前はcodeqlから進化しました。 ByteCodeはコードに対応し、DLはQLに対応します。これは、主にcodeqlがbytecodeを直接分析できないことを後悔することを補うための宣言的な静的分析ツールです。
このプロジェクトには2つの主な目的があります。
- 教育の目的は、静的分析を始めるのを助けることです。このプロジェクトでは、Datalogを介していくつかの静的分析アルゴリズムを実装する方法を示します。命令的な静的解析と比較して、この方法ははるかに簡単です。基本原則を学んだ後、自分でルールをdiyすることもできます。
- 掘削の効率を向上させるために、セキュリティ研究者は一般にソースコードを取得できません。ほとんどの場合、彼らはJARパッケージのみを分析し、その後、アイデアを介して分解されたコードを見ることができます。効率は比較的低いです。 ByteCodedLによって提供される検索機能、コールグラフ分析関数、および染色分析関数が、セキュリティ研究者の掘削の効率を改善できることを願っています。
インストール
- Soot-fact-generator.jarをダウンロードまたは構築します
- Souffleをインストールします
- NEO4Jをインストールします
Docker
docker-compose.ymlのように構築したDockerを使用できます
特徴
使用法
Docsフォルダーを参照してください
サポート
使用中に遭遇した問題は、介して行うことができます
フィードバックする3つの方法
プラグイン
- アイデア
- bytecodedlヘルパーbdlh
- Datalog Language Plugin Intellij-Datalog
了承
- 2人の教師Li YueとNanyang UniversityのTan Tan Tanに感謝します。彼らは、提供したプログラム分析コースを通じて静的分析の分野を紹介しました。
- Doopのおかげで、Soot-fact-generator.jarが提供されています。