Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/multitagging/multitagging
- Owner: MultiTagging
- License: mit
- Created: 2024-08-10T06:55:36.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-09-06T20:42:20.000Z (2 months ago)
- Last Synced: 2024-10-11T05:41:55.807Z (about 1 month ago)
- Topics: analysis-tools, blockchain, data-labeling, ethereum, smart-contracts, vulnerabilities
- Language: Python
- Homepage:
- Size: 191 MB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
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