DASCA/README.md

87 lines
3.4 KiB
Markdown
Raw Normal View History

2015-05-29 09:21:26 +00:00
# DASCA
2015-06-15 07:22:50 +00:00
## Installation
### Prerequisites
* Java 8
2015-10-29 12:48:37 +00:00
* Android SDK (to obtain dx.jar)
2016-08-05 16:07:15 +00:00
* Eclipse Neon, including
2016-09-21 21:37:03 +00:00
* [Scala IDE and Scalatest Runner (optional)](http://download.scala-ide.org/sdk/lithium/e44/scala211/stable/site)
* ["Maven for Scala" - Maven Integration for Eclipse](http://alchim31.free.fr/m2e-scala/update-site)
* [m2e - Maven Integration for Eclipse](http://download.eclipse.org/releases/neon)
* [CVC3](http://cs.nyu.edu/acsys/cvc3/) including the Java bindings for CVC3
* [apktool](https://ibotpeaches.github.io/Apktool/)
2015-06-15 07:22:50 +00:00
### Checkout
2016-11-03 23:58:40 +00:00
Note that this repository imports [WALA](http://wala.sf.net) as a submodule. Thus,
you either need to recursively clone this repository, e.g.,
```
2016-07-28 22:45:31 +00:00
git clone --recursive https://git.logicalhacking.com/DASCA/DASCA.git
```
or execute ``git submodule update --init --recursive`` after
cloning the repository.
### Resolving external dependencies
2016-09-21 21:37:03 +00:00
* Ensure that the environment variable `ANDROID_HOME` is set correctly and that
the Android SDK has API 19 installed, i.e.,
2016-09-21 21:37:03 +00:00
`${ANDROID_HOME}/platforms/android-19/android.jar` should be a valid path.
2015-10-15 08:59:12 +00:00
* Install ``apktool_2.0.0.jar`` into your local maven repository:
2016-09-11 11:59:21 +00:00
2015-06-15 07:22:50 +00:00
```
2016-09-11 09:20:44 +00:00
cd $(mktemp -d)
wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.0.0.jar
2016-09-11 09:20:44 +00:00
mvn install:install-file -Dfile=apktool_2.0.0.jar -DgroupId=apktool -DartifactId=apktool -Dpackaging=jar -Dversion=2.0.0
2015-10-15 08:57:06 +00:00
```
2015-06-15 07:22:50 +00:00
### WALA configuration
DASCA (and the underlying WALA setup) is tested with Java version 8
(and version 6). If DASCA is installed using Java 8, there should be
no need for updating the WALA configuration.
If you experience problems or want to optimize the performance (e.g.,
by analyzing the programs based on a different Java version), you
might need to configure the the location of the Java JDK. The JDK used
as part of the static analysis is configured in the `wala.properties`
file, e.g.
2016-09-21 21:37:03 +00:00
```
cd DASCA/
echo "java_runtime_dir = <PATH-TO-JDK>" >> externals/WALA/com.ibm.wala.core/dat/wala.properties
```
2016-09-21 21:37:03 +00:00
Don't forget to adjust the path to the Java JDK accordingly, i.e.,
the `<PATH-TO-JDK>` should point to the directory containing the file
`rt.lib`.
2015-06-15 07:22:50 +00:00
### How to Compile
First resolve the dependencies using maven:
2015-06-15 07:22:50 +00:00
```
2016-08-05 15:34:19 +00:00
cd src/eu.aniketos.dasca.parent/
2015-06-15 07:22:50 +00:00
mvn -P wala clean install -DskipTests=true -q
```
After this, all projects can be imported into a fresh Eclipse
workspace using `File -> Import -> Maven -> Existing Maven Projects`:
2016-09-20 07:12:03 +00:00
1. Select the DASCA `src` folder as source for the import
2015-10-15 10:39:15 +00:00
2. Import all offered projects (WALA and DASCA)
2016-08-08 19:58:06 +00:00
2016-11-03 23:58:40 +00:00
While some WALA projects may contain compilation errors, all DASCA
2015-06-15 07:22:50 +00:00
projects (i.e., `eu.aniketos.dasca.*`) should compile without errors.
## Team
Main contact: [Achim D. Brucker](http://www.brucker.ch/)
### Contributors
* Thomas Deuster
* [Michael Herzberg](http://www.dcs.shef.ac.uk/cgi-bin/makeperson?M.Herzberg)
2015-06-15 07:22:50 +00:00
* Tim Herres
2016-07-28 22:51:21 +00:00
2016-09-14 18:02:44 +00:00
## Publications
2016-07-28 22:51:21 +00:00
* Achim D. Brucker and Michael Herzberg. [On the Static Analysis of
Hybrid Mobile Apps: A Report on the State of Apache Cordova
Nation.](https://www.brucker.ch/bibliography/download/2016/brucker.ea-cordova-security-2016.pdf)
In International Symposium on Engineering Secure Software
and Systems (ESSoS). Lecture Notes in Computer Science (9639), pages
72-88, Springer-Verlag, 2016.
https://www.brucker.ch/bibliography/abstract/brucker.ea-cordova-security-2016
doi: [10.1007/978-3-319-30806-7_5](http://dx.doi.org/10.1007/978-3-319-30806-7_5)