これは、Argus-Safの公式報告です。
Argus-Safでテストしてプレイするために、Argus-Saf-Playgroundプロジェクトからフォークできます。これは、さまざまな種類の分析を実行する方法のデモコードを備えたArgus-Saf強化プロジェクトの基本的なセットアップを備えています。
Argus-SAF/
+--src/main/scala/org.argus.saf/Main.scala Main class for argus-saf CLI.
+--jawa Core static analysis data structures, "*.class"&"*.jawa" file managing, jawa compiler, class hierarchy, method body resolving, flow analysis, etc.
+--amandroid Android resource parsers, information collector, decompiler, environment method builder, flow analysis, etc.
+--jnsaf Java native interface analysis.
+--nativedroid Annotation based analysis using angr symbolic execution engine.
build.sbtを編集することにより、jawaに依存しています:
libraryDependencies += "com.github.arguslab" %% "jawa" % VERSION
build.sbtを編集することにより、amandroidに依存します:
libraryDependencies += "com.github.arguslab" %% "amandroid" % VERSION
注意:Amandroidに依存すると、依存関係としてJawaが自動的に追加されます。 MavenまたはGradleを使用する場合は、対応する形式に翻訳する必要があります。
要件:Java 10
$ java -jar argus-saf_***-version-assembly.jar
Argus-Saf開発に参加するには、次のことが必要です。
次のソフトウェアをインストールします。
このリポジトリをフォークし、それをコンピューターにクローンします
$ git clone https://github.com/arguslab/Argus-SAF.git
Intellijのアイデアを開き、 File -> New -> Project from existing sourcesを選択します(初期ウィンドウから: Import Projectから)、Argus -Safリポジトリがあるディレクトリをポイントし、 SBT projectとしてインポートします。
インポートが終了したら、Argus-Saf Repo Directoryにアクセスして実行します
$ git checkout .idea
アイデアプロジェクトのアーティファクトを取得し、構成を実行するため。
[オプション] Argus-Safをよりスムーズにするには、コンパイラプロセスに2GBのヒープサイズを与える必要があります。
SCALAコンパイルサーバーを使用する場合(デフォルト): Settings > Languages & Frameworks > Scala Compile Server > JVM maximum heap size
SCALAコンパイルサーバーが無効になっている場合: Settings > Build, Execution, Deployment > Compiler > Build process heap size
コマンドラインからArgus-Safを構築する:Argus-Saf Repo Directoryに移動して実行します
$ tools/bin/sbt clean compile test
$ tools/bin/sbt assembly
JN-SafとNativeDroidをインストールします。
$ tools/scripts/install.sh
どちらかをインストールできます。
$ tools/scripts/install.sh jnsaf
$ tools/scripts/install.sh nativedroid
JN-SafとNativeDroidをインストールした後。走る:
$ tools/scripts/benchmark_cli.sh droidbench
$ tools/scripts/benchmark_cli.sh iccbench
$ tools/scripts/benchmark_cli.sh nativeflowbench
$ tools/scripts/install.sh nativedroid
$ python nativedroid/nativedroid/server/native_droid_server.py /tmp/binaries nativedroid/nativedroid/data/sourceAndSinks/NativeSourcesAndSinks.txt nativedroid/data/sourceAndSinks/TaintSourcesAndSinks.txt
進行中のベイゼル統合。とりあえず、すべてのビルドファイルを無視してください。
Argus-Safに貢献するには、このリポジトリのフォークからプルリクエストを送ってください!
Argus-Safの構築と開発の詳細については、貢献に関するガイドラインもご覧ください。優れたアイデアを提供した人々は、寄稿者にリストされています。
何を貢献すべきかわからない場合は、 help wanted Labelを使用して問題のトラッカーをチェックアウトし、Argus-Safでウォームアップするのを助けるために1つを主張することができます。