Check out the project in action here:
A comprehensive smart contract security analysis tool combining static analysis and symbolic execution capabilities for thorough security assessment of Ethereum smart contracts.
SC.Vulnerability.Scanner.Demo.video.mp4
- Static Analysis: Slither-like capabilities including control/data flow analysis and pattern matching.
- Symbolic Execution: Mythril-like path exploration and constraint solving to detect complex attack vectors.
- Interactive Web Interface: Upload contracts, view vulnerability reports, and get security recommendations.
- Detects: Reentrancy, Arithmetic Overflows/Underflows, Access Control Issues, and Gas Inefficiencies.
- Frontend: React, TypeScript
- Backend: Python, Flask/FastAPI
- Target: Solidity Smart Contracts
A comprehensive smart contract security analysis tool combining static analysis and symbolic execution capabilities for thorough security assessment of Ethereum smart contracts.
+------------------+ +------------------+ +------------------+
| Frontend | | Backend | | Smart Contracts |
| (React) |<---->| (Python) |<---->| (Solidity) |
+------------------+ +------------------+ +------------------+
| β’ Contract Form | | β’ Static Analysis| | β’ AST Analysis |
| β’ Results View | | β’ Symbolic Exec | | β’ Vulnerability |
| β’ Vulnerability | | β’ Detectors | | Patterns |
| Dashboard | | β’ API Endpoints | | β’ Test Cases |
+--------+---------+ +--------+---------+ +--------+--------+
| | |
v v v
+------------------+ +------------------+ +------------------+
| External | | Database | | Blockchain |
| Services | | (Results) | | Networks |
+------------------+ +------------------+ +------------------+
| β’ Code Repos | | β’ Scan History | | β’ Mainnet |
| β’ Documentation | | β’ Vulnerabilities| | β’ Testnet |
| β’ Updates | | β’ Analytics | | β’ Local Node |
+------------------+ +------------------+ +------------------+
flowchart TB
A[Contract Input] --> B[Static Analyzer]
A --> C[Symbolic Executor]
B --> D[Detectors]
C --> D
D --> E[Access Control]
D --> F[Arithmetic]
D --> G[Gas]
D --> H[Reentrancy]
E & F & G & H --> I[Analysis Results]
I --> J[API Response]
flowchart TB
A[Contract Form] --> B[Contract Analysis Page]
B --> C[Analysis Results]
C --> D[Vulnerability Report]
D --> E[Issue Details]
D --> F[Stats Summary]
D --> G[Vulnerability Chart]
E & F & G --> H[Dashboard]
H --> I[Recent Scans]
style A fill:#f9f,stroke:#333
style H fill:#bbf,stroke:#333
-
Static Analysis (Slither-like capabilities)
- Control flow analysis
- Data flow analysis
- Pattern matching for known vulnerabilities
- State variable analysis
-
Symbolic Execution (Mythril-like capabilities)
- Path exploration
- Constraint solving
- Transaction sequence analysis
- Attack vector detection
-
Web Interface
- Interactive vulnerability reports
- Code visualization
- Audit trail
- Security recommendations
.
βββ backend/ # Python backend
β βββ analyzers/ # Analysis engines
β β βββ ast_parser.py # Solidity AST parsing
β β βββ static_analyzer.py # Static analysis
β β βββ symbolic_executor.py # Symbolic execution
β βββ detectors/ # Vulnerability detectors
β β βββ access_control_detector.py
β β βββ arithmetic_detector.py
β β βββ gas_detector.py
β β βββ reentrancy_detector.py
β βββ tests/ # Test suite
β β βββ contracts/ # Test contracts
β βββ app.py # Main application
β βββ requirements.txt # Python dependencies
βββ frontend/ # React frontend
β βββ src/
β β βββ components/ # Reusable components
β β βββ pages/ # Main application pages
β β βββ theme/ # UI theme configuration
β β βββ utils/ # Helper utilities
β βββ package.json # NPM dependencies
β βββ tsconfig.json # TypeScript config
βββ scripts/ # Utility scripts
- Backend Setup
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt- Frontend Setup
cd frontend
npm install- Start the Backend
cd backend
python app.py- Start the Frontend
cd frontend
npm start-
Using the Web Interface:
- Navigate to the web UI (default: http://localhost:3000)
- Upload your smart contract file
- Click "Analyze Contract"
- View detailed vulnerability report
-
Using Command Line:
# Start the backend server
cd backend
python app.py
# In another terminal, analyze a contract
curl -X POST -F "file=@path/to/contract.sol" http://localhost:5000/analyze- Access Control Issues
- Arithmetic Vulnerabilities (Overflow/Underflow)
- Gas Optimization Issues
- Reentrancy Vulnerabilities
- And more...
- Backend Tests:
cd backend
python -m pytest tests/- Frontend Tests:
cd frontend
npm test- Fork the repository
- Create a feature branch
- Make your changes
- Run the test suite
- Submit a pull request
MIT License
Copyright (c) 2025 Smart Contract Vulnerability Scanner
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files.