Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
evm-audit-helpers — Collezione di frammenti Solidity e script Foundry per audit di sicurezza degli smart contract | Kitploit
Strumenti/GitLabGitLab/dannydoodlesstory/evm-audit-helpers
Analisi StaticaAnalisi delle VulnerabilitàAnalisi del CodiceDevSecOpsApprendimento e FormazioneRisorse Curate
GitLabdannydoodlesstory/evm-audit-helpers

evm-audit-helpers

Collezione di frammenti Solidity e script Foundry per audit di sicurezza degli smart contract

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Vedi Repository
2h 51m faNon ancora revisionato
Condividi

evm-audit-helpers

GitHub license
GitHub stars
Foundry version
Build Status


Panoramica

evm-audit-helpers è una raccolta curata di frammenti Solidity, script Foundry e modelli di test progettati per accelerare gli audit di sicurezza degli smart contract EVM. Il repository raggruppa blocchi riutilizzabili per problematiche di audit comuni come reentrancy, discrepanze nel layout di storage e insidie legate all'ottimizzazione del gas, consentendo ad auditor e sviluppatori di concentrarsi sulla logica piuttosto che sul codice ripetitivo.

Obiettivi principali:

  • Accelerare la preparazione degli audit con controlli e pattern già pronti.
  • Garantire coerenza nei report di audit fornendo suite di test standard.
  • Facilitare l'apprendimento attraverso esempi ben documentati e linee guida sulle best practice.

Funzionalità

CategoriaDescrizioneFile principali
Controlli di ReentrancyModificatori helper, pattern nonReentrant e script di rilevamento a runtime.src/helpers/Reentrancy.sol, scripts/reentrancy_check.sol
Analizzatore di Layout di StorageUtility per confrontare slot di storage, generare diagrammi di layout e rilevare upgrade non sicuri.src/helpers/StorageLayout.sol, scripts/storage_analyzer.sol
Modelli di Test FoundrySuite di test boilerplate che coprono vulnerabilità comuni (controllo accessi, aritmetica, delegatecall, ecc.).test/templates/*
Audit di Gas e OpcodeScript per profilare l'uso del gas e segnalare opcode costosi.scripts/gas_profiler.sol
Helper per ReportReporter JSON/Markdown che possono essere integrati in dashboard CI.scripts/report_generator.sol
Integrazione CIEsempio di workflow GitHub Actions per esecuzioni di audit automatizzate..github/workflows/ci.yml

Tutti gli helper sono scritti per Solidity ^0.8.20 e sono compatibili con Foundry (forge, cast).


Avvio rapido

root@kitploit:~
# 1️⃣ Clona il repository
git clone https://github.com/your-org/evm-audit-helpers.git
cd evm-audit-helpers

# 2️⃣ Installa Foundry (se non già installato)
curl -L https://foundry.paradigm.xyz | bash
foundryup

# 3️⃣ Installa le dipendenze
forge install

# 4️⃣ Esegui la suite di test predefinita (include controlli di reentrancy, storage e gas)
forge test

Suggerimento: Aggiungi export FOUNDRY_PROFILE=ci alla tua shell per utilizzare le impostazioni del compilatore ottimizzate per CI.


Utilizzo

1. Controlli di Reentrancy

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");
    }
}

Esegui il rilevatore a runtime su un contratto compilato:

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

2. Analisi del Layout di Storage

root@kitploit:~
# Genera una descrizione JSON del layout di storage di un contratto compilato
cast abi-storage --contract MyUpgradeable.sol:MyUpgradeable > storage.json

# Confronta con un layout di riferimento (ad es., da una versione precedente)
forge script scripts/storage_analyzer.sol:StorageComparator \
    --sig "compare(string memory, string memory)" storage.json reference.json

Lo script restituirà slot non corrispondenti, potenziali shadowing e suggerimenti per annotazioni @custom:oz-upgrades-unsafe-allow.

3. Modelli di Test Foundry

Copia un modello nel tuo repository di audit:

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

Modifica MyContract.t.sol per importare il contratto sotto audit ed esegui:

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

4. Integrazione CI

Aggiungi il workflow fornito al tuo repository:

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

Il workflow segnalerà automaticamente gli errori e pubblicherà un report markdown come commento sulla PR.


Contributi

Accogliamo con piacere i contributi! Segui questi passaggi:

  1. Fai il fork del repository e crea un branch per la funzionalità (git checkout -b feat/<nome>).
  2. Scrivi test per qualsiasi nuovo helper o correzione di bug. Tutto il nuovo codice deve avere una copertura del 100 % (forge coverage).
  3. Esegui la suite di linting (npm run lint – utilizza solhint e prettier).
  4. Invia una Pull Request con una descrizione chiara, un riferimento a un issue (se applicabile) e un breve esempio di caso d'uso per l'audit.

Stile del Codice

  • Solidity: pragma solidity ^0.8.20;
  • Usa snake_case per le funzioni interne, camelCase per quelle pubbliche/esterne.
  • Documenta ogni contratto/interfaccia pubblica con NatSpec (///).

Ambiente di Sviluppo

root@kitploit:~
# Installa gli strumenti di linting
npm install

# Esegui solhint
npx solhint 'src/**/*.sol' 'test/**/*.sol'

# Formattazione automatica
npx prettier --write '**/*.sol'

Licenza

evm-audit-helpers è distribuito sotto la Licenza MIT. Consulta il file LICENSE per i dettagli.


Buon audit!

Scarica lo strumento