/coal

COAL Constant Propagation Solver

Primary LanguageJavaApache License 2.0Apache-2.0

COAL: The Constant Propagation Language and Solver

Many program analyses require statically inferring the possible values of object variables. However, current approaches either do not account for correlations between object fields or do so in an ad hoc manner. The COAL project enables the specification and solution of these problems in a principled way. The project includes a language that is used to describe the classes of the objects whose value should be inferred. It also includes a solver, which computes the object values.

⚠️ This repository is a fork of the original work of Damien Octeau (https://github.com/siis/coal) which is not maintained anymore ⚠️

➡️ The original work was part of this publication:

@inproceedings{
    10.5555/2818754.2818767,
    author = {Octeau, Damien and Luchaup, Daniel and Dering, Matthew and Jha, Somesh and McDaniel, Patrick},
    title = {Composite Constant Propagation: Application to Android Inter-Component Communication Analysis},
    year = {2015},
    isbn = {9781479919345},
    publisher = {IEEE Press},
    booktitle = {Proceedings of the 37th International Conference on Software Engineering - Volume 1},
    pages = {77–88},
    numpages = {12},
    location = {Florence, Italy},
    series = {ICSE '15}
}

Getting started

Downloading the tool

git clone https://github.com/JordanSamhi/coal.git

Installing the tool

cd coal
sh build.sh

Using the tool

java -jar target/coal-all-0.2.jar options

Options:

  • -a : The path to the APK to process.
  • -cp : The path to Android platforms folder.
  • -model : The path to the model files' folder.
  • -out : The path to the output folder.

➡️ For more information, you can refer to the archive of the original website: archive

Built With

  • Maven - Dependency Management

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details

Contact

For any question, please contact us at: Jordan Samhi