Git Product home page Git Product logo

simidroid's Introduction

SimiDroid

Identifying and Explaining Similarities in Android Apps

For more information, please check the following paper:

@inproceedings{li2017simidroid,
title={SimiDroid: Identifying and Explaining Similarities in Android Apps},
author={Li, Li and Bissyand{\'e}, Tegawend{\'e} F and Klein, Jacques},
booktitle={The 16th IEEE International Conference On Trust, Security And Privacy In Computing And Communications (TrustCom 2017)},
year={2017}
}

Setup

The simidroid_config.xml configuration file provides an interface for users of SimiDroid to specify what kinds of similarities (e.g., resource-level or code-level) they want to apply. In particular, there are two things that users need to keep in mind in order to customise simidroid_config.xml.

  • AndroidJarsPath: Using this element to specify the path of android-platforms (cf. https://github.com/lilicoding/android-platforms).
  • Plugin: Using this element to specify the needed plugins. So far, SimiDroid has implemented three types of plugins: METHOD (i.e., method-level), COMPONENT (i.e., component-level), and RESOURCE (i.e., resource-level).

The following script demonstrates an example of configured simidroid_config.xml. Based on this configuration, components between two Android apps will be compared.

<SimiDroid>
	<AndroidJarsPath>~/github/android-platforms</AndroidJarsPath>
	<Plugin name="COMPONENT" />
</SimiDroid>

Execution

  • For two apps

For comparing the similarity of two Android apps, the parameters of SimiDroid should be the exact paths of these two apps.

java -jar SimiDroid.jar ~/apps/WhatsAppMessenger.apk ~/apps/Snapchat.apk

  • For multiple apps

For comparing the similarity of multiple Android apps, the parameters of SimiDroid can be (1) the exact paths of to-be-analyzed apps or (2) the directory path of the to-be-analyzed apps.

java -jar SimiDroid.jar ~/apps/WhatsAppMessenger.apk ~/apps/Snapchat.apk ~/apps/Facebook.apk
java -jar SimiDroid.jar ~/apps/

simidroid's People

Contributors

gaojun0816 avatar lilicoding 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.