Este é o repórico oficial do Argus-Saf.
Para teste e jogo com o Argus-SAF, você pode bifurcar nosso projeto Argus-Saf-Playground, que possui a configuração básica para um projeto aprimorado do Argus-Saf com códigos de demonstração de como executar diferentes tipos de análise.
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 do Amandroid, editando build.sbt :
libraryDependencies += "com.github.arguslab" %% "amandroid" % VERSION
Observe que: depende do Amandroid adicionará automaticamente Jawa como dependência. Se você usar o Maven ou o Gradle, traduzi -o para o formato correspondente.
Requisito: Java 10
$ java -jar argus-saf_***-version-assembly.jar
Para participar do desenvolvimento do Argus-SAF, você precisa:
Instale o seguinte software:
Bire este repositório e cloná -lo no seu computador
$ git clone https://github.com/arguslab/Argus-SAF.git
Abra o Intellij Idea, Selecione File -> New -> Project from existing sources (se da janela inicial: Import Project ), aponte para o diretório onde o repositório Argus -SAF é e, em seguida, importá -lo como SBT project .
Quando a importação terminar, vá para o Diretório de Repo Argus-Saf e corra
$ git checkout .idea
Para obter artefatos e executar configurações para o Idea Project.
[Opcional] Para construir o Argus-Saf mais suave, você deve fornecer 2 GB do tamanho da pilha ao processo do compilador.
Se você usa o Scala Compile Server (padrão): Settings > Languages & Frameworks > Scala Compile Server > JVM maximum heap size
Se o Scala Compile Server estiver desativado: Settings > Build, Execution, Deployment > Compiler > Build process heap size
Construa Argus-Saf a partir da linha de comando: vá para o diretório repositório de Argus-SAF e corra
$ tools/bin/sbt clean compile test
$ tools/bin/sbt assembly
Instale JN-Saf e NativeDroid :
$ tools/scripts/install.sh
Você pode instalar qualquer um por:
$ tools/scripts/install.sh jnsaf
$ tools/scripts/install.sh nativedroid
Depois de instalar JN-Saf e 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
Integração do Bazel em andamento. Ignore todos os arquivos de construção por enquanto.
Para contribuir com o Argus-Saf, envie-nos uma solicitação de tração do seu garfo deste repositório!
Para obter mais informações sobre a construção e o desenvolvimento de Argus-SAF, também consulte nossas diretrizes para contribuir. As pessoas que forneceram excelentes idéias estão listadas em colaborador.
Se você não souber o que contribuir, pode verificar o rastreador de problemas com a etiqueta help wanted e reivindicar um para ajudar a se aquecer com o Argus-Saf.