Dies ist offizielles Reporitorium für den Argus-Saf.
Für Test und Spielen mit Argus-SAF können Sie von unserem Argus-Saf-Playground-Projekt ausgab, das das grundlegende Setup für ein Argus-SAF-Projekt mit Demo-Codes für die Durchführung verschiedener Art von Analyse aufweist.
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.
Abhängig von Jawa durch Bearbeitung build.sbt :
libraryDependencies += "com.github.arguslab" %% "jawa" % VERSION
Abhängig von Amandroid durch Bearbeiten von build.sbt :
libraryDependencies += "com.github.arguslab" %% "amandroid" % VERSION
Beachten Sie, dass: Abhängig von Amandroid fügt Jawa automatisch als Abhängigkeit hinzu. Wenn Sie Maven oder Gradle verwenden, sollten Sie es in das entsprechende Format übersetzen.
Anforderung: Java 10
$ java -jar argus-saf_***-version-assembly.jar
Um an der Entwicklung von Argus-SAF teilzunehmen, müssen Sie:
Installieren Sie die folgende Software:
Geben Sie dieses Repository auf und klonen Sie es auf Ihren Computer
$ git clone https://github.com/arguslab/Argus-SAF.git
Öffnen Sie die Intellij -Idee, wählen Sie File -> New -> Project from existing sources (falls aus dem ersten Fenster: Import Project ) auf das Verzeichnis, in dem das Argus -Saf -Repository es ist, und importieren Sie es dann als SBT project .
Beim Abschluss des Imports gehen Sie zum Argus-Saf Repo-Verzeichnis und rennen Sie
$ git checkout .idea
Um Artefakte zu erhalten und Konfigurationen für das Ideenprojekt auszuführen.
[Optional] Um Argus-Saf reibungsloser zu erstellen, sollten Sie dem Compiler-Prozess 2 GB der Haufengröße verleihen.
Wenn Sie Scala Compile Server verwenden (Standard): Settings > Languages & Frameworks > Scala Compile Server > JVM maximum heap size
Wenn der Scala Compile -Server deaktiviert ist: Settings > Build, Execution, Deployment > Compiler > Build process heap size
Erstellen Sie Argus-Saf aus Befehlszeile: Gehen Sie zum Argus-Saf Repo-Verzeichnis und rennen Sie
$ tools/bin/sbt clean compile test
$ tools/bin/sbt assembly
Installieren Sie JN-Saf und NativeDroid :
$ tools/scripts/install.sh
Sie können entweder eins installieren nach:
$ tools/scripts/install.sh jnsaf
$ tools/scripts/install.sh nativedroid
Nach der Installation JN-Saf und NativeDroid . Laufen:
$ 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
Integration von Basel in Arbeit. Ignorieren Sie vorerst alle Build -Dateien.
Um zum Argus-SAF beizutragen, senden Sie uns bitte eine Pull-Anfrage von Ihrer Gabel dieses Repositorys!
Weitere Informationen zum Aufbau und zur Entwicklung von Argus-SAF finden Sie unter unseren Richtlinien für den Beitrag. Personen, die hervorragende Ideen zur Verfügung gestellt wurden, sind im Mitwirkenden aufgeführt.
Wenn Sie nicht wissen, was Sie beibehalten möchten, können Sie den Problem Tracker mit Hilfe von help wanted -Label auschecken und sich selbst bei Argus-Saf helfen, sich selbst aufzuwärmen.