Coder Social home page Coder Social logo

xiaodong-yu / argus-saf Goto Github PK

View Code? Open in Web Editor NEW

This project forked from arguslab/argus-saf

0.0 1.0 0.0 101.35 MB

Argus static analysis framework

License: Eclipse Public License 1.0

Scala 91.59% Java 7.71% ANTLR 0.09% Shell 0.51% Batchfile 0.10%

argus-saf's Introduction

Argus-SAF: Argus static analysis framework

License Download Build Status Codacy Badge Codacy Badge

This is official reporitory for the Argus-SAF.

For test and play with Argus-SAF, you can fork from our Argus-SAF-playground project, which have the basic setup for a Argus-SAF enhanced project with demo codes of how to perform different kind of analysis.

Repository structure

Argus-SAF/
+--src/main/scala/org.argus.saf     Main class for argus-saf CLI.
+--org.argus.jawa                   Core static analysis data structures, "*.class"&"*.jawa" file managing, jawa compiler, class hierarchy, method body resolving, flow analysis, etc.
+--org.argus.amandroid              Android resource parsers, information collector, decompiler, environment method builder, flow analysis, etc.
+--org.argus.amandroid.concurrent   Akka actors for Amandroid.

Obtaining Argus-SAF as library

Depend on Jawa Maven Central by editing build.sbt:

libraryDependencies += "com.github.arguslab" %% "jawa" % VERSION

Depend on Amandroid Maven Central by editing build.sbt:

libraryDependencies += "com.github.arguslab" %% "amandroid" % VERSION

Note that: Depend on Amandroid will automatically add Jawa as dependency. If you use Maven or Gradle, you should translate it to corresponding format.

Obtaining Argus-SAF CLI Tool

Requirement: Java 8

  1. Click Download
  2. Download argus-saf_***-version-assembly.jar
  3. Get usage by:
$ java -jar argus-saf_***-version-assembly.jar

Developing Argus-SAF

In order to take part in Argus-SAF development, you need to:

  1. Install the following software:

    • IntelliJ IDEA 14 or higher with compatible version of Scala plugin
  2. Fork this repository and clone it to your computer

$ git clone https://github.com/arguslab/Argus-SAF.git
  1. Open IntelliJ IDEA, select File -> New -> Project from existing sources (if from initial window: Import Project), point to the directory where Scala plugin repository is and then import it as SBT project.

  2. When importing is finished, go to Argus-SAF repo directory and run

$ git checkout .idea

in order to get artifacts and run configurations for IDEA project.

  1. [Optional] To build Argus-SAF more smooth you should give 2GB of the heap size to the compiler process.

    • if you use Scala Compile Server (default): Settings > Languages & Frameworks > Scala Compile Server > JVM maximum heap size

    • if Scala Compile Server is disabled: Settings > Build, Execution, Deployment > Compiler > Build process heap size

  2. Build Argus-SAF from command line: go to Argus-SAF repo directory and run

$ tools/bin/sbt clean compile test

How to contribute

To contribute to the Argus-SAF, please send us a pull request from your fork of this repository!

For more information on building and developing Argus-SAF, please also check out our guidelines for contributing. People who provided excellent ideas are listed in contributor.

What to contribute

If you don't know what to contribute, you can checkout the issue tracker with help wanted label, and claim one to help yourself warm up with Argus-SAF.

argus-saf's People

Contributors

fgwei avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.