Giter Site home page Giter Site logo

iccbot's Introduction

ICCBot

An Key Characteristic-directed and Efficient-friendly ICC Resolution tool.

build ICCBot

mvn -f pom.xml clean package
cp target/ICCBot-1.0-SNAPSHOT.one-jar.jar ../ICCBot.jar

test ICCBot:

python .\scripts\runICCBot.py

run ICCBot:

java –jar ICCBot.jar –h

usage: java -jar ICCBot.jar [options] [-path] [-name] [-androidJar] [-outputDir][-client]
 
 -h                     -h: Show the help information.
 -name <arg>            -name: Set the name of the apk under analysis.
 -path <arg>            -path: Set the path to the apk under analysis.
 -outputDir <arg>       -outputDir: Set the output folder of the apk.
 -client <arg>          -client [default:MainClient/ICTGClient]: Resolve ICC and generate component transiton graph.
                          IROutputClient: Output soot IR files.
                          ManifestClient: Output manifest.xml file.
                          CallGraphClient: Output call graph files.
                          FragmentClient: Output the fragment loading results.
                          ICCBotResultEvaluateClient: Evaluate the results generated by ICCBot.
                          IC3ResultEvaluateClient: Evaluate the results generated by IC3.
                          IC3DIALDroidResultEvaluateClient: Evaluate the results generated by IC3DIALDroid.
                          GatorATGResultEvaluateClient: Evaluate the results generated by Gator.
                          ToolEvaluateClient: Evaluate the results of four tools.
                          TestGenerationClient: Generate test cases for components based on the static results.
                        
 -androidJar <arg>      -androidJar: Set the path of android.jar.                
 -version <arg>         -version [default:23]: Version of Android SDK.
 -maxPathNumber <arg>   -maxPathNumber [default:10000]: Set the max number of paths.
 -time <arg>            -time [default:90]: Set the max running time (min).

 -noAdapter             -noAdapter: exclude super simple adapter model
 -noAsyncMethod         -noAsyncMethod: exclude async method call edge
 -noCallBackEntry       -noCallBackEntry: exclude the call back methods
 -noDynamicBC           -noDynamicBC: exclude dynamic broadcast receiver matching
 -noFragment            -noFragment: exclude fragment operation model
 -noFunctionExpand      -noFunctionExpand: do not inline function with useful contexts
 -noImplicit            -noImplicit: exclude implict matching
 -noLibCode             -noLibCode: exclude the activities not declared in app's package
 -noPolym               -noPolym: exclude polymorphism methods
 -noStaticField         -noStaticField: exclude string operation model
 -noStringOp            -noStringOp: exclude string operation model
 -noWrapperAPI          -noWrapperAPI: exclude RAICC model
 -onlyDummyMain         -onlyDummyMain: limit the entry scope

 -debug                 -debug: use debug mode.

example:

java -jar ICCBot.jar -path apk/ -name IntentFlowBench.apk -outputDir results  -androidJar lib/platforms

Input:apk File

Output:ICC resolution results, CTG graph, etc.

Output Files:

  • CallGraphInfo
  • DummyMainInfo
  • ManifestInfo
  • fragmentInfo
    • fragment loading graph
  • CTGResult
    • component transition graph

iccbot's People

Contributors

hanada31 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.