Este es un perrero oficial para el Argus-Saf.
Para la prueba y el juego con Argus-SAF, puede bifurcar de nuestro proyecto Argus-Saf-Playground, que tiene la configuración básica para un proyecto mejorado Argus-SAF con códigos de demostración de cómo realizar diferentes tipos de análisis.
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.
Depende de Jawa editando build.sbt :
libraryDependencies += "com.github.arguslab" %% "jawa" % VERSION
Depende de Amandroid editando build.sbt :
libraryDependencies += "com.github.arguslab" %% "amandroid" % VERSION
Tenga en cuenta que: depender de Amandroid agregará automáticamente Jawa como dependencia. Si usa Maven o Gradle, debe traducirlo al formato correspondiente.
Requisito: Java 10
$ java -jar argus-saf_***-version-assembly.jar
Para participar en el desarrollo Argus-SAF, debe:
Instale el siguiente software:
Bifurcar este repositorio y clonarlo a su computadora
$ git clone https://github.com/arguslab/Argus-SAF.git
Abra la idea IntelliJ, seleccione File -> New -> Project from existing sources (si desde la ventana inicial: Import Project ), apunte al directorio donde el repositorio Argus -SAF es y luego lo importe como SBT project .
Cuando se termine la importación, vaya al directorio de repo Argus-SAF y ejecute
$ git checkout .idea
Para obtener artefactos y ejecutar configuraciones para el proyecto Idea.
[Opcional] Para construir Argus-SAF más suave, debe dar 2 GB del tamaño del montón al proceso del compilador.
Si utiliza el servidor de compilación de Scala (predeterminado): Settings > Languages & Frameworks > Scala Compile Server > JVM maximum heap size
Si el servidor de compilación de Scala está deshabilitado: Settings > Build, Execution, Deployment > Compiler > Build process heap size
Construir argus-saf desde la línea de comandos: ir al directorio de repo de argus-saf y ejecutar
$ tools/bin/sbt clean compile test
$ tools/bin/sbt assembly
Instalar JN-Saf y NativeDroid :
$ tools/scripts/install.sh
Puede instalar cualquiera de los dos por:
$ tools/scripts/install.sh jnsaf
$ tools/scripts/install.sh nativedroid
Después de instalar JN-Saf y NativeDroid . Correr:
$ 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
Integración de bazel en progreso. Ignore todos los archivos de compilación por ahora.
Para contribuir al argus-saf, envíenos una solicitud de extracción de su bifurcación de este repositorio.
Para obtener más información sobre cómo construir y desarrollar Argus-SAF, también consulte nuestras pautas para contribuir. Las personas que proporcionaron excelentes ideas figuran en el contribuyente.
Si no sabe qué contribuir, puede consultar el Tracker de problemas con help wanted Label, y reclamar uno para ayudarlo a calentarse con Argus-SAF.