
Statischer Analyzer für Solidity und Vyper
Tritt dem Empire Hacking Slack bei
- Diskussionen und Support
Slither ist ein in Python3 geschriebenes statisches Analyse-Framework für Solidity und Vyper. Es führt eine Reihe von Schwachstellendetektoren aus, gibt visuelle Informationen über Vertragsdetails aus und bietet eine API, um benutzerdefinierte Analysen einfach zu schreiben. Slither ermöglicht Entwicklern, Schwachstellen zu finden, ihr Codeverständnis zu verbessern und schnell individuelle Analysen zu prototypisieren.
Führe Slither auf einer Hardhat/Foundry/Dapp/Brownie-Anwendung aus:```console slither .
Dies ist die bevorzugte Option, wenn Ihr Projekt Abhängigkeiten hat, da Slither auf dem zugrunde liegenden Kompilierungs-Framework basiert, um Quellcode zu kompilieren.
Sie können Slither jedoch auch auf einer einzelnen Datei ausführen, die keine Abhängigkeiten importiert:```console
slither tests/uninitialized.sol
Hinweis Slither benötigt Python 3.10+. Falls Sie keines der unterstützten Compilierungs-Frameworks verwenden, benötigen Sie solc, den Solidity-Compiler. Wir empfehlen solc-select für den bequemen Wechsel zwischen solc-Versionen.
uv ist ein schneller Python-Paketmanager, der 10-100x schneller ist als pip.```console
curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install slither-analyzer
uvx --from slither-analyzer slither
Zum Aktualisieren:```console
uv tool upgrade slither-analyzer
python3 -m pip install slither-analyzer
Aktualisieren:```console
python3 -m pip install --upgrade slither-analyzer
brew install slither-analyzer
### Mit Git (Entwicklung)```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>
The -e flag installiert im bearbeitbaren Modus, was bedeutet, dass Änderungen am Quellcode sofort übernommen werden, ohne dass eine Neuinstallation erforderlich ist.
Verwenden Sie das Docker-Image eth-security-toolbox. Es enthält alle unsere Sicherheitstools und jede Hauptversion von Solidity in einem einzigen Image. /home/share wird im Container auf /share gemountet.```bash
docker pull trailofbits/eth-security-toolbox
Um ein Verzeichnis im Container freizugeben:```bash
docker run -it -v /home/share:/share trailofbits/eth-security-toolbox
$GIT_TAG durch das tatsächliche Tag) ```YAML
slither [target] --checklist.slither [target] --checklist --markdown-root https://github.com/ORG/REPO/blob/COMMIT/ (ersetzen Sie ORG, REPO, COMMIT)