Fast detection of repackaged Android applications based on the comparison of resource files included into the package.
Java
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
src/com/zhauniarovich/fsquadra
.gitignore
README.md

README.md

FSquaDRA

Description

FSquaDRA is a tool for detection of repackaged Android applications. The approach is based on the idea that repackaged applications want to maintain "look and feel" of the originals.

Our tool computes Jaccard similarity over the set of digests of files included into Android package file. We use the digests precomputed during the application signing, thus, significantly improving the speed of apk comparison.

This work has been done in the University of Trento.

Publication

The results of our research were presented on the 28th Annual IFIP WG 11.3 Working Conference on Data and Applications Security and Privacy. Please, use the following bibtex reference to cite our paper:

@inproceedings{Fsquadra_Zhauniarovich2014,
    author = {Zhauniarovich, Yury and Gadyatskaya, Olga and Crispo, Bruno and La Spina, Francesco and Moser, Ermanno},
    title = {{FSquaDRA: Fast Detection of Repackaged Applications}},
    booktitle = {Proceedings of the 28th Annual IFIP WG 11.3 Working Conference on Data and Applications Security and Privacy},
    series = {DBSec '14},
    pages = {131--146},
    year = {2014},
}

Usage

We would recommend to build a jar file from the project. In this case, the tool can be run in the following way:

java -jar fsquadra.jar <path1> <path2> -o=<result_file>

where path1 is a path to the first apk file or folder with apk files, path2 is a path to the second apk file or folder with apk files. The tool will take all files from the path1 and compare them pair wise with the files in path2. path2 may be absent, in this case, FSquaDRA will compare pair wise all the files inside path1 folder.

The results of the comparison will be written into result_file in csv format in the following way:

apkName1,apkName2,numberOfFilesInApk1,numberOfFilesInApk2,jaccardSimilarity,ifTheCertificatesAreTheSame

Libraries

The tool uses jCommander library to parse command line arguments.

License

The tool is distributed under Apache-2.0 license. The citation of the paper is highly appreciated.