Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
evm-audit-helpers — Коллекция Solidity-сниппетов и Foundry-скриптов для аудита безопасности смарт-контрактов | Kitploit
Инструменты/GitLabGitLab/dannydoodlesstory/evm-audit-helpers
Статический анализАнализ уязвимостейАнализ КодаDevSecOpsОбучение и ОбразованиеПодобранные Ресурсы
GitLabdannydoodlesstory/evm-audit-helpers

evm-audit-helpers

Коллекция Solidity-сниппетов и Foundry-скриптов для аудита безопасности смарт-контрактов

Репозиторий
2 ч 48 мин назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

evm-audit-helpers

GitHub license
GitHub stars
Foundry version
Build Status


Обзор

evm-audit-helpers — это подборка Solidity-фрагментов, Foundry-скриптов и тестовых шаблонов, предназначенных для ускорения аудита безопасности смарт‑контрактов EVM. Репозиторий содержит переиспользуемые строительные блоки для типовых задач аудита, таких как повторный вход (reentrancy), несоответствия раскладки хранилища и ошибки оптимизации газа, позволяя аудиторам и разработчикам сосредоточиться на логике, а не на шаблонном коде.

Основные цели:

  • Ускорить подготовку к аудиту с помощью готовых проверок и шаблонов.
  • Обеспечить согласованность отчётов об аудите за счёт стандартных тестовых наборов.
  • Облегчить обучение благодаря хорошо документированным примерам и рекомендациям по лучшим практикам.

Возможности

КатегорияОписаниеОсновные файлы
Проверки повторного входаВспомогательные модификаторы, шаблоны nonReentrant и скрипты обнаружения во время выполнения.src/helpers/Reentrancy.sol, scripts/reentrancy_check.sol
Анализатор раскладки хранилищаУтилиты для сравнения слотов хранилища, генерации диаграмм раскладки и обнаружения небезопасных обновлений.src/helpers/StorageLayout.sol, scripts/storage_analyzer.sol
Шаблоны тестов FoundryГотовые тестовые наборы, покрывающие типовые уязвимости (контроль доступа, арифметика, delegatecall и т. д.).test/templates/*
Аудит газа и опкодовСкрипты для профилирования использования газа и выявления дорогостоящих опкодов.scripts/gas_profiler.sol
Помощники для отчётовГенераторы отчётов в формате JSON/Markdown, которые можно подключить к CI-панелям.scripts/report_generator.sol
Интеграция с CIПример рабочего процесса GitHub Actions для автоматического запуска аудита..github/workflows/ci.yml

Все помощники написаны для Solidity ^0.8.20 и совместимы с Foundry (forge, cast).


Быстрый старт

root@kitploit:~
# 1️⃣ Клонируйте репозиторий
git clone https://github.com/your-org/evm-audit-helpers.git
cd evm-audit-helpers

# 2️⃣ Установите Foundry (если ещё не установлен)
curl -L https://foundry.paradigm.xyz | bash
foundryup

# 3️⃣ Установите зависимости
forge install

# 4️⃣ Запустите стандартный набор тестов (включает проверки повторного входа, хранилища и газа)
forge test

Совет: Добавьте export FOUNDRY_PROFILE=ci в вашу оболочку, чтобы использовать оптимизированные для CI настройки компилятора.


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

1. Проверки повторного входа

root@kitploit:~
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "evm-audit-helpers/src/helpers/Reentrancy.sol";

contract MyVault is ReentrancyGuard {
    mapping(address => uint256) private balances;

    function deposit() external payable nonReentrant {
        balances[msg.sender] += msg.value;
    }

    function withdraw(uint256 amount) external nonReentrant {
        require(balances[msg.sender] >= amount, "Insufficient");
        balances[msg.sender] -= amount;
        (bool ok,) = msg.sender.call{value: amount}("");
        require(ok, "Transfer failed");
    }
}

Запустите детектор во время выполнения на скомпилированном контракте:

root@kitploit:~
forge script scripts/reentrancy_check.sol:ReentrancyChecker --rpc-url $RPC_URL --broadcast

2. Анализ раскладки хранилища

root@kitploit:~
# Сгенерируйте JSON-описание раскладки хранилища скомпилированного контракта
cast abi-storage --contract MyUpgradeable.sol:MyUpgradeable > storage.json

# Сравните с эталонной раскладкой (например, из предыдущей версии)
forge script scripts/storage_analyzer.sol:StorageComparator \
    --sig "compare(string memory, string memory)" storage.json reference.json

Скрипт выведет несовпадающие слоты, возможное затенение (shadowing) и предложения по аннотациям @custom:oz-upgrades-unsafe-allow.

3. Шаблоны тестов Foundry

Скопируйте шаблон в ваш репозиторий аудита:

root@kitploit:~
cp -r test/templates/reentrancy/ my-audit/tests/

Отредактируйте MyContract.t.sol, чтобы импортировать контракт, находящийся под аудитом, и запустите:

root@kitploit:~
forge test --match-contract MyContract

4. Интеграция с CI

Добавьте предоставленный рабочий процесс в ваш репозиторий:

root@kitploit:~
# .github/workflows/audit.yml
name: EVM Audit

on:
  push:
    branches: [main]
  pull_request:

jobs:
  audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Foundry
        run: curl -L https://foundry.paradigm.xyz | bash && foundryup
      - name: Run Audit Suite
        run: |
          forge install
          forge test -vv
          forge script scripts/reentrancy_check.sol:ReentrancyChecker --rpc-url ${{ secrets.RPC_URL }}
          forge script scripts/storage_analyzer.sol:StorageComparator --sig "compare(string,string)" storage.json reference.json

Рабочий процесс автоматически отметит сбои и опубликует отчёт в формате markdown как комментарий к PR.


Вклад в проект

Мы приветствуем ваш вклад! Пожалуйста, выполните следующие шаги:

  1. Сделайте форк репозитория и создайте ветку для новой функции (git checkout -b feat/<name>).
  2. Напишите тесты для любого нового помощника или исправления ошибок. Весь новый код должен иметь 100 % покрытие (forge coverage).
  3. Запустите набор линтеров (npm run lint — использует solhint и prettier).
  4. Отправьте Pull Request с понятным описанием, ссылкой на issue (если применимо) и кратким примером использования в аудите.

Стиль кода

  • Solidity: pragma solidity ^0.8.20;
  • Используйте snake_case для внутренних функций, camelCase для публичных/внешних.
  • Документируйте каждый публичный контракт/интерфейс с помощью NatSpec (///).

Среда разработки

root@kitploit:~
# Установите инструменты линтинга
npm install

# Запустите solhint
npx solhint 'src/**/*.sol' 'test/**/*.sol'

# Автоформатирование
npx prettier --write '**/*.sol'

Лицензия

evm-audit-helpers распространяется под лицензией MIT License. Подробности см. в файле LICENSE.


Удачного аудита!

Скачать инструмент