| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
COVA is a static analysis tool to compute path constraints based on user-defined APIs. COVA was created for our paper (ASE 2019) A Qualitative Analysis of Android Taint-Analysis Results.
There is a generated JavaDoc available.
COVA is implemented as a maven project. However, since some dependencies COVA uses do not have public maven repositories, to build COVA you need to follow the steps below:
COVA uses Z3 for STM-Solving and you need at first to bind Z3 for running the tool or use a docker image (tested on Linux). You can find Z3-4.5.0 in the local directory $REPO_LOCATION/cova/localLibs/ or downloand it from the GitHub repostiory of Z3.
Currently, the repository only includes Z3 for Windows 64bit. There are two choices for you to bind z3:
Userwide via OS: Add $REPO_LOCATION/cova/localLibs/z3-4.5.0-x64-win/bin to the system variable PATH of your operating system (How do I set or change the PATH system variable?). You may need to restart your OS.
Projectwide in Eclipse: After importing COVA as maven project, you can specify the environment variable:
Eclipse > Run > Run Configurations > Environment > New
Name: PATH
Value: $REPO_LOCATION/cova/localLibs/z3-4.5.0-x64-win/bin
Currently, the repository only includes Z3 for Ubuntu and Debian-8.5 64bit.
Ubuntu based distributions:
Execute the following command in yout command line: (you can set LD_LIBRARY_PATH otherwise only in an interactive shell since Ubuntu 9.04) REPO_LOCATION=$("pwd") && echo "$REPO_LOCATION/cova/localLibs/z3-4.5.0-x64-ubuntu/bin" | sudo tee /etc/ld.so.conf.d/cova.conf && sudo ldconfig
Other:
Add the LD_LIBRARY_PATH Variable to ~/.profile( or ~/.xprofile): cd into Repository: REPO_LOCATION=$("pwd") && echo "export LD_LIBRARY_PATH=\"\$LD_LIBRARY_PATH:$REPO_LOCATION/cova/localLibs/z3-4.5.0-x64-ubuntu/bin\"" >> ~/.profile; Load the edited file to your current environment (e.g. source ~/.profile or restart your user session).
Eclipse > Run > Run Configurations > Environment > New
Name: LD_LIBRARY_PATH
Value: $REPO_LOCATION/cova/localLibs/z3-4.5.0-x64-ubuntu/bin
You need to add Z3 to DYLD_LIBRARY_PATH (untested)
Eclipse> File> Import > Maven > Existing Maven Projects > Enter the path to your local repository > Finish
(1) Together with FlowDroid (Default):
You can use COVA combined with FLowDroid to get the constraints under which a leak reported by FlowDroid may happen.
Run cova with the following options (put after java -jar cova.jar):
-android -config <config files path> -p <android platform path> -apk <apk file>
for testing this you can find:
The results are in JSON files located in $WORKING_DIRECTORY/covaOutput/jsonOutput
(2) Standalone:
You can run COVA in standalone mode with the option s. In this mode a constraint map will be computed. If you have the java source code of your application, you can get the constraint map printed next to each line of code in HTML sites with the option -output_html.
Run cova with the following options:
-android -config <config files path> -p <android platform path> -apk <apk file> -s "true" -output_html <source code path>
for testing this you can find:
The results are in HTML files located in $WORKING_DIRECTORY/covaOutput/htmlOutput
The submodule cova follows Google's code styleguide. We use fmt-maven-plugin to format the code.
Execute this before making your pull request mvn com.coveo:fmt-maven-plugin:format
| Back | FazBrowse Home | New Git URL |