Torna agli aggiornamenti
New releaseJul 29, 2026

slither v0.11.6

Analizzatore statico per Solidity e Vyper

Condividi

Slither, l'analizzatore statico di smart contract

Logo del framework di analisi statica Slither

Stato della build PyPI Slither - Leggi la documentazione Slither - Wiki

Unisciti a Empire Hacking Slack

Stato Slack

- Discussioni e supporto

Slither è un framework di analisi statica per Solidity e Vyper scritto in Python3. Esegue una suite di rilevatori di vulnerabilità, stampa informazioni visive sui dettagli dei contratti e fornisce un'API per scrivere facilmente analisi personalizzate. Slither consente agli sviluppatori di trovare vulnerabilità, migliorare la comprensione del codice e prototipare rapidamente analisi personalizzate.

Caratteristiche

  • Rileva codice Solidity vulnerabile con bassi falsi positivi (vedi l'elenco dei trofei)
  • Identifica dove si verifica la condizione di errore nel codice sorgente
  • Si integra facilmente con l'integrazione continua e le build di Hardhat/Foundry
  • Le 'stampanti' integrate riportano rapidamente informazioni cruciali sui contratti
  • API per i rilevatori per scrivere analisi personalizzate in Python
  • Capacità di analizzare contratti scritti con Solidity >= 0.4
  • La rappresentazione intermedia (SlithIR) consente analisi semplici e ad alta precisione
  • Analizza correttamente il 99,9% di tutto il codice Solidity pubblico
  • Tempo di esecuzione medio inferiore a 1 secondo per contratto
  • Si integra con la scansione del codice di Github in CI
  • Supporto per smart contract Vyper

Utilizzo

Esegui Slither su un'applicazione Hardhat/Foundry/Dapp/Brownie:```console slither .

Questa è l'opzione preferita se il tuo progetto ha dipendenze, poiché Slither si basa sul framework di compilazione sottostante per compilare il codice sorgente.

Tuttavia, puoi eseguire Slither su un file singolo che non importa dipendenze:```console
slither tests/uninitialized.sol

Come installare

Nota Slither richiede Python 3.10+. Se non intendi utilizzare uno dei framework di compilazione supportati, hai bisogno di solc, il compilatore Solidity; consigliamo di utilizzare solc-select per passare comodamente tra le versioni di solc.

Usando uv (Consigliato)

uv è un gestore di pacchetti Python veloce che è da 10 a 100 volte più rapido di pip.```console

Install uv if you haven't already

curl -LsSf https://astral.sh/uv/install.sh | sh

Install slither as a tool

uv tool install slither-analyzer

Or run slither without installation

uvx --from slither-analyzer slither

Per aggiornare:```console
uv tool upgrade slither-analyzer

Usare Pip```console

python3 -m pip install slither-analyzer

Per aggiornare:```console
python3 -m pip install --upgrade slither-analyzer

Usare Brew```console

brew install slither-analyzer

### Usare Git (Sviluppo)```bash
git clone https://github.com/crytic/slither.git && cd slither

# Install as editable for development
uv tool install -e .

# Or use uv run for testing without installation
uv run slither <target>

Il flag -e installa in modalità modificabile, il che significa che le modifiche al codice sorgente vengono immediatamente riflesse senza dover reinstallare.

Utilizzo di Docker

Utilizza l'immagine docker eth-security-toolbox. Include tutti i nostri strumenti di sicurezza e ogni versione principale di Solidity in una singola immagine. /home/share verrà montato su /share nel contenitore.```bash docker pull trailofbits/eth-security-toolbox

Per condividere una directory nel contenitore:```bash
docker run -it -v /home/share:/share trailofbits/eth-security-toolbox

Integrazione

  • Per l'integrazione con GitHub Action, utilizza slither-action.
  • Per l'integrazione con pre-commit, utilizza (sostituisci $GIT_TAG con un tag reale) ```YAML
  • Per generare un report in Markdown, usa slither [target] --checklist.
  • Per generare un Markdown con l'evidenziazione del codice sorgente di GitHub, usa slither [target] --checklist --markdown-root https://github.com/ORG/REPO/blob/COMMIT/ (sostituisci ORG, REPO, COMMIT)

Rilevatori

Categorie