SmartBugs

Blockchain / Web3 v2.1.1 · 17.04.2026 активный

Фреймворк для запуска нескольких инструментов анализа смарт-контрактов (Mythril, Slither, Oyente, Manticore и др.) параллельно и сравнения их результатов. Автоматизирует аудит по нескольким движкам с единым отчётом.

v2.1.1
17.04.2026 current
Добавлен 15.07.2026 · Обновлён 15.07.2026 · Blockchain / Web3
Установка
git clone https://github.com/smartbugs/smartbugs
cd smartbugs
install/setup-venv.sh

# Анализ контракта всеми инструментами
./smartbugs -t all -f contracts/MyContract.sol

# Только Mythril + Slither
./smartbugs -t mythril slither -f MyContract.sol

# JSON-вывод результатов
./smartbugs -t slither -f MyContract.sol
./reparse results
./results2csv -p results > results.csv
переведено ИИ

@авторы инструментов Подумайте о самостоятельной интеграции вашего инструмента с оптимальными настройками, вместо ожидания, пока это сделает кто-то другой. Создайте pull request или свяжитесь с нами для поддержки!

@пользователи Имейте в виду, что наряду с поддерживаемыми инструментами, такими как Mythril, Oyente+, Semgrep, Slither и Solhint, SmartBugs также предлагает неподдерживаемые академические исследовательские прототипы, которые могут быть несовместимы с текущими версиями Solidity и EVM.

SmartBugs: фреймворк для анализа смарт-контрактов Ethereum

Smartbugs release Smartbugs license crypto donate button analysis tools

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

Monika di Angelo, Thomas Durieux, João F. Ferreira, Gernot Salzer:
"SmartBugs 2.0: An Execution Framework for Weakness Detection in Ethereum Smart Contracts",
in Proc. 38th IEEE/ACM International Conference on Automated Software Engineering (ASE),
pages 2102-2105, IEEE Computer Society, 2023.

Возможности

  • 25 поддерживаемых инструментов, 3 режима для анализа исходного кода Solidity, байткода деплоя и кода выполнения.

  • Модульная интеграция анализаторов. Всё, что нужно для добавления нового инструмента — это Docker-образ, инкапсулирующий инструмент, и несколько строк в конфигурационном файле. Чтобы сделать вывод доступным в стандартизированном формате, добавьте небольшой скрипт на Python.

  • Параллельное, случайное и возобновляемое выполнение задач для оптимального использования ресурсов при проведении массового анализа. Если выполнение прервано, его можно возобновить, снова запустив SmartBugs с теми же параметрами.

  • Стандартизированный формат вывода. Скрипты разбирают и нормализуют вывод инструментов для автоматического анализа результатов для различных инструментов.

  • Автоматическая загрузка подходящего компилятора Solidity, соответствующего анализируемому контракту, и его внедрение в Docker-образ.

  • Вывод результатов в формате SARIF для интеграции в рабочие процессы Github.

  • Кроссплатформенность: SmartBugs проверен на Linux, MacOS и Windows.

Поддерживаемые инструменты

версия Solidity байткод код выполнения
CCC (CPG Contract Checker) #c531ae3 (IMC-24) :heavy_check_mark:
ConFuzzius #4315fb7 v0.0.1 :heavy_check_mark:
Conkas #4e0f256 :heavy_check_mark: :heavy_check_mark:
Ethainter :heavy_check_mark:
eThor 2023 [2] :heavy_check_mark:
HoneyBadger #ff30c9a :heavy_check_mark: :heavy_check_mark:
MadMax #6e9a6e9 :heavy_check_mark:
Maian #4bab09a :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Mando v0.1 :heavy_check_mark:
Mando HGT v0.1-hgt :heavy_check_mark:
Manticore [3] 0.3.7 :heavy_check_mark:
Mythril 0.24.8 [2] :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Osiris #d1ecc37 :heavy_check_mark: :heavy_check_mark:
Oyente+ [1] #060ca34 :heavy_check_mark: :heavy_check_mark:
Pakala #c84ef38 v1.1.10 :heavy_check_mark:
Securify :heavy_check_mark: :heavy_check_mark:
Securify2 :heavy_check_mark:
Semgrep/Decurity 1.131.0/1.2.1 [2] :heavy_check_mark:
sFuzz #48934c0 (2019-03-01) :heavy_check_mark:
Slither 0.11.3 [2] :heavy_check_mark:
Smartcheck :heavy_check_mark:
Solhint 6.0.0 [2] :heavy_check_mark:
teEther #04adf56 :heavy_check_mark:
Vandal #d2b0043 :heavy_check_mark:
VulHunter v0.1 :heavy_check_mark: :heavy_check_mark:

Примечания:

[1] oyente+ — это обновление теперь неподдерживаемого инструмента Oyente, доступного в SmartBugs как oyente. Oyente ограничен устаревшими версиями EVM (примерно соответствующими Solidity 0.4.x), так как он не обрабатывает операции EVM, введенные после его выпуска. Oyente+ расширяет Oyente этими операциями, не добавляя детекторы для других слабостей. Oyente+ поддерживается и обрабатывает последние версии EVM.

[2] Доступны более старые версии, см. папку tools.

[3] Этот инструмент может быть некорректно сконфигурирован и поэтому может не выдавать полезные результаты. Не стесняйтесь присылать исправления.

Установка

SmartBugs проверен на Linux, MacOS и Windows. Он зависит от Docker и Python. Подробности см. в инструкциях по установке.

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

SmartBugs предоставляет единый командный интерфейс для всех инструментов. Две утилиты позволяют пользователю повторно разобрать результаты анализа в любое время после анализа и извлечь данные в форму, пригодную для базы данных.

В качестве примера следующие команды анализируют контракты в папке samples всеми доступными инструментами и записывают разобранный вывод в results.csv.

./smartbugs -t all -f samples/* --timeout 600
./reparse results
./results2csv -p results > results.csv

Подробности см. в примечаниях по использованию и вики SmartBugs.

Наборы данных смарт-контрактов

Смотрите нашу информацию о доступных наборах данных, если вы ищете входные данные. Количество контрактов в этих наборах данных варьируется от 10 до 250 000.

Наука: Как цитировать

Если вы используете SmartBugs или один из вышеуказанных наборов данных, вы, возможно, захотите указать свои источники. Подробности см. в списке публикаций.

Поддержка и пожертвования

Вы можете выразить свою признательность проекту и поддержать его дальнейшее развитие, сделав пожертвование.

🙌 Пожертвования в ETH: 0xA4FBA2908162646197aca90b84B095BE4D16Ae53 🙌

Лицензия

Лицензия распространяется на все файлы в репозитории, за исключением смарт-контрактов в папке samples. Файлы там были получены с Etherscan и сохраняют свои оригинальные лицензии.

Комментарии
Войдите, чтобы оставить комментарий