Назад к обновлениям
New releaseJul 29, 2026

slither v0.11.6

Статический анализатор для Solidity и Vyper

Поделиться

Slither, статический анализатор смарт-контрактов

Логотип статического анализатора Slither

Build Status PyPI Slither - Read the Docs Slither - Wiki

Присоединяйтесь к Slack-каналу Empire Hacking

Slack Status

- Обсуждения и поддержка

Slither — это фреймворк статического анализа для Solidity и Vyper, написанный на Python3. Он запускает набор детекторов уязвимостей, выводит визуальную информацию о деталях контрактов и предоставляет API для простого написания собственных анализов. Slither позволяет разработчикам находить уязвимости, улучшать понимание кода и быстро прототипировать собственные анализы.

Возможности

  • Обнаруживает уязвимый код Solidity с низким уровнем ложных срабатываний (см. список трофеев)
  • Определяет, где в исходном коде возникает условие ошибки
  • Легко интегрируется в непрерывную интеграцию и сборки Hardhat/Foundry
  • Встроенные «принтеры» быстро сообщают важную информацию о контракте
  • API детекторов для написания собственных анализов на Python
  • Возможность анализа контрактов, написанных на Solidity >= 0.4
  • Промежуточное представление (SlithIR) обеспечивает простые и высокоточные анализы
  • Корректно парсит 99.9% всего публичного кода Solidity
  • Среднее время выполнения менее 1 секунды на контракт
  • Интегрируется со сканированием кода GitHub в CI
  • Поддержка смарт-контрактов Vyper

Использование

Запустите Slither в приложении Hardhat/Foundry/Dapp/Brownie:```console slither .

Это предпочтительный вариант, если ваш проект имеет зависимости, поскольку Slither полагается на базовый фреймворк компиляции для компиляции исходного кода.

Однако вы можете запустить Slither на одном файле, который не импортирует зависимости:```console
slither tests/uninitialized.sol

Как установить

Примечание Slither требует Python 3.10+. Если вы не собираетесь использовать один из поддерживаемых фреймворков сборки, вам потребуется solc, компилятор Solidity; мы рекомендуем использовать solc-select для удобного переключения между версиями solc.

Использование uv (рекомендуется)

uv — это быстрый менеджер пакетов Python, который в 10-100 раз быстрее 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

Для обновления:```console
uv tool upgrade slither-analyzer

Использование Pip```console

python3 -m pip install slither-analyzer

Для обновления:```console
python3 -m pip install --upgrade slither-analyzer

Использование Brew```console

brew install slither-analyzer

### Использование Git (Разработка)```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>

Флаг -e устанавливает в редактируемый режим, то есть изменения в исходном коде немедленно отражаются без переустановки.

Использование Docker

Используйте образ Docker eth-security-toolbox. Он включает все наши инструменты безопасности и все основные версии Solidity в одном образе. /home/share будет смонтирован в /share внутри контейнера.```bash docker pull trailofbits/eth-security-toolbox

Чтобы предоставить общий доступ к каталогу в контейнере:```bash
docker run -it -v /home/share:/share trailofbits/eth-security-toolbox

Интеграция

  • Для интеграции с GitHub Actions используйте slither-action.
  • Для интеграции с pre-commit используйте (замените $GIT_TAG на реальный тег) ```YAML
  • Чтобы сгенерировать отчёт в Markdown, используйте slither [target] --checklist.
  • Чтобы сгенерировать Markdown с подсветкой исходного кода GitHub, используйте slither [target] --checklist --markdown-root https://github.com/ORG/REPO/blob/COMMIT/ (замените ORG, REPO, COMMIT)

Детекторы

Категории