svfa-scala
An implementation of sparse-value flow analysis on top of soot (using Scala)
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.3%) to scientific vocabulary
Repository
An implementation of sparse-value flow analysis on top of soot (using Scala)
Basic Info
- Host: GitHub
- Owner: rbonifacio
- Language: Java
- Default Branch: develop
- Size: 8.16 MB
Statistics
- Stars: 9
- Watchers: 2
- Forks: 15
- Open Issues: 13
- Releases: 1
Metadata Files
README.md
SVFA (Sparse Value Flow Analysis) implementation based on Soot
This is a scala implementation of a framework that builds a sparse-value flow graph using Soot.
Status
- Experimental.
Usage
- Clone this repository or download a stable release.
- Add a GitHub token to your ~/.gitconfig.
[github] token = TOKEN - Build this project using sbt (
sbt compile test) - Publish the artifact as a JAR file in your m2 repository (
sbt publish) - Create a dependency to the svfa-scala artifact in your maven project.
{xml}
<dependency>
<groupId>br.unb.cic</groupId>
<artifactId>svfa-scala_2.12</artifactId>
<version>3.0.1-SNAPSHOT</version>
</dependency>
- Implement a class that extends the
JSVFA class(see some examples in the scala tests). you must provide implementations to the following methods.getEntryPoints()to set up the "main" methods. This implementation must return a list of Soot methods.sootClassPath()to set up the soot classpath. This implementation must return a string.analyze(unit)to identify the type of a node (source, sink, simple node) in the graph; given a statement (soot unit).
Installation
- Install Scala Plugin in IntelliJ IDEA.
- Install Java 8 (Java JDK Path
/usr/lib/jvm/java-8-openjdk-amd64).{bash} sudo apt install openjdk-8-jre-headless sudo apt install openjdk-8-jdk - Clone the project:
{bash} git clone https://github.com/rbonifacio/svfa-scala - Add GitHub token in
~/.gitconfig. - IDE
- Reload
sbt. - Set Project's settings to work with Java 8.
- Build Project.
- Run test.
- Reload
Benchmark
This project integrates 2 well-known benchmarks.
Securibench
This benchmark was integrated because it is also used in the FlowDroid Project
and the tests cases are in src/test/java/securibench.
failed: 0, passed: 72, ignored: 31 of 103 test (69.90%)
AliasingTest - failed: 0, passed: 4, ignored: 2 of 6 test
(66.7%)- [5]
- [6]
ArraysTest - failed: 0, passed: 5, ignored: 5 of 10 test
(50%)- [2]
- [5]
- [8]
- [9]
- [10]
BasicTest - failed: 0, passed: 39, ignored: 3 of 42 test
(92.85%)- [36]
- [38]
- [42]
CollectionTest - failed: 0, passed: 3, ignored: 11 of 14 test
(21.42%)- [3]
- [4]
- [5]
- [6]
- [7]
- [8]
- [9]
- [10]
- [11] * There are any assertions here, it calls test [11b]
- [11b]
- [12]
- [13]
DataStructureTest - failed: 0, passed: 5, ignored: 1 of 6 test
(83.33%)- [5]
FactoryTest - failed: 0, passed: 2, ignored: 1 of 3 test
(66.67%)- [3]
InterTest - failed: 0, passed:11, ignored: 4 of 14 test
(78.57%)- [6]
- [11] - flaky
- [12]
SessionTest - failed: 0, passed: 0, ignored: 3 of 3 test
(0%)- [1]
- [2]
- [3]
StrongUpdateTest - failed: 0, passed: 3, ignored: 2 of 5 test
(60%)- [3]
- [5]
Taintbench: (WIP)
Taintbench contains a set o Android Apks that are old malware apps.
We have created a file taintbench.properties in src/test/resources to set the configurations.
failed: ?, passed: 1, ignored: ? of 39 test (?%)
- [Roidsec]
- [ ]
Tasks
WIP
- [ ] Finish integration of Taintbench.
- [ ] Add set up project documentation.
- [ ] Integrate Securibench as a submodule.
- [ ] Fix bugs for Securibench in folders
- [ ] Datastructure
- [ ] Factory
- [ ] Session
- [ ] Strong Update
- [ ] Aliasing
Owner
- Name: Rodrigo Bonifácio
- Login: rbonifacio
- Kind: user
- Location: Brasília
- Company: University of Brasília
- Website: http://rbonifacio.github.io
- Repositories: 27
- Profile: https://github.com/rbonifacio
Associate professor at UnB. Interested in source-code analysis and manipulation, software security and static analysis.
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - family-names: "Bonifácio" given-names: "Rodrigo" orcid: "https://orcid.org/0000-0002-2380-2829" - family-names: "Bodden" given-names: "Eric" orcid: "https://orcid.org/0000-0003-3470-3647" - family-names: "R. Silva" given-names: "João Victor" - family-names: "R. Silva" given-names: "Ingrid Lorraine" - family-names: "Santos" given-names: "Galileu" title: "SVFA-Scala: an implementation of SVFA for Java" version: 0.1.0-SNAPSHOT date-released: 2022-09-06 url: "https://github.com/rbonifacio/svfa-scala"
GitHub Events
Total
- Release event: 1
- Delete event: 1
- Issue comment event: 2
- Push event: 12
- Pull request event: 10
- Fork event: 1
- Create event: 6
Last Year
- Release event: 1
- Delete event: 1
- Issue comment event: 2
- Push event: 12
- Pull request event: 10
- Fork event: 1
- Create event: 6
Committers
Last synced: about 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| jose clavo tafur | j****r@g****m | 92 |
| rbonifacio | r****3@g****m | 90 |
| Ingrid Lorraine Rodrigues da Silva | i****1@g****m | 7 |
| João Victor Rodrigues da Silva | v****1@g****m | 6 |
| jose clavo tafur | j****r | 5 |
| rbonifacio | r****o@M****l | 3 |
| Barbosa | m****2@c****r | 2 |
| Galileu Santos | g****s@l****r | 2 |
| Paulo Borba | p****b@c****r | 1 |
| root | r****t@p****n | 1 |
| rafaelmotaalves | r****7@c****r | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 12 months ago
All Time
- Total issues: 5
- Total pull requests: 29
- Average time to close issues: N/A
- Average time to close pull requests: 22 days
- Total issue authors: 3
- Total pull request authors: 7
- Average comments per issue: 0.2
- Average comments per pull request: 0.1
- Merged pull requests: 13
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 8
- Average time to close issues: N/A
- Average time to close pull requests: 11 days
- Issue authors: 0
- Pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.25
- Merged pull requests: 3
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- rbonifacio (3)
- mengjianwei12345 (1)
- barbosamaatheus (1)
Pull Request Authors
- Jclavo (21)
- galilasmb (5)
- joao-victor-silva (5)
- barbosamaatheus (2)
- luisamaralh (1)
- lorrainesilva (1)
- rafaelmotaalves (1)