Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/multitagging/multitagging

A vulnerable Ethereum smart contract labeling framework
https://github.com/multitagging/multitagging

analysis-tools blockchain data-labeling ethereum smart-contracts vulnerabilities

Last synced: about 1 month ago
JSON representation

A vulnerable Ethereum smart contract labeling framework

Awesome Lists containing this project

README

        

# MultiTagging
A vulnerable Ethereum smart contract labeling framework.
## Features
The MultiTagging framework provides several functions through the following components:
* **Tagger:** It parses analysis tool reports to extract vulnerability tags and map them to the common vulnerability labels, i.e., SWC codes and DASP Ranks.
* **Evaluator:** It measures the performance of the tool using different evaluation metrics.
* **Elector:** It elects the sample label based on votes of a number of tools. It supports two Threshold-based vote methods (AtLeastOne and Majority) and one Power-based vote method.
* **Plotter:** It plots the evaluation results in different formats.
## Supported Tools
* The components of the MultiTagging framework can be utilized for any analysis tool except for the Tagger.
* Currently Tagger supports 6 tools: MAIAN, Mythril, Semgrep, Slither, Solhint, and VeriSmart.
## Requirements
* Python >=3.11.7 (Recommended 3.12.2)
* You can run MultiTagging framework using Jupyter Notebook or from Terminal.
## Usage
1. Clone MultiTagging repository
```
git clone https://github.com/MultiTagging/MultiTagging.git
```
2. Go to the MultiTagging home directory.
```
cd MultiTagging
```
3. Add your study's files in ToolReports, ToolAnalysisTime, and BaseDS. To retrieve study files from other folders, you can alternatively update the Scripts/config.json file.
4. Run the MultiTagging framework, there are three options:
1. **Termianl Option:**
1. Run Main.py to open the wizard program.
```
python3 Main.py
```
2. Pass your choices and enter the requested input to get the output.
```
MultiTagging Framework
..................................................

Enter the number of the selected function:
1: Get the labeled data for the tool reports.
2: Get vote-based labeled data.
3: Get the evaluation report.
4: Get the evaluation chart.
5: Get tools overlap degree.
6: Get tool efficiency scores
7: Exit
..................................................
```
3. Check the Results directory to get the saved output.
2. **Jupyter Notebook:**
* In a code cell, Run Main.py to open the wizard program.
```
run -i 'Main.py'
```
3. **Within your Python code**
* You can call any function of the MultiTagging framework directly. Check the MultiTagging Demo
## Demo
* The MultiTagging framework demo is available here: MultiTagging Demo