Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitLabGitLab/dannydoodlesstory/evm-audit-helpers
Analyse StatiqueAnalyse des VulnérabilitésAnalyse de CodeDevSecOpsApprentissage et ÉducationRessources Organisées
GitLabdannydoodlesstory/evm-audit-helpers

evm-audit-helpers

Collection d'extraits Solidity et de scripts Foundry pour les audits de sécurité des contrats intelligents

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Voir le dépôt
13il y a 20 joursPas encore vérifié
Partager

evm-audit-helpers

GitHub license
GitHub stars
Foundry version
Build Status


Vue d'ensemble

evm-audit-helpers est une collection organisée d'extraits Solidity, de scripts Foundry et de modèles de tests conçus pour accélérer les audits de sécurité des smart‑contracts EVM. Le dépôt regroupe des blocs réutilisables pour les préoccupations d'audit courantes telles que la réentrance, les incohérences de disposition du stockage et les pièges d'optimisation du gaz, permettant aux auditeurs et aux développeurs de se concentrer sur la logique plutôt que sur le code standard.

Objectifs clés :

  • Accélérer la préparation des audits grâce à des vérifications et des modèles prêts à l'emploi.
  • Garantir la cohérence des rapports d'audit en fournissant des suites de tests standard.
  • Faciliter l'apprentissage grâce à des exemples bien documentés et des directives de bonnes pratiques.

Fonctionnalités

CatégorieDescriptionFichiers principaux
Vérificateurs de réentranceModificateurs d'aide, modèles nonReentrant et scripts de détection à l'exécution.src/helpers/Reentrancy.sol, scripts/reentrancy_check.sol
Analyseur de disposition du stockageUtilitaires pour comparer les emplacements de stockage, générer des diagrammes de disposition et détecter les mises à niveau non sécurisées.src/helpers/StorageLayout.sol, scripts/storage_analyzer.sol
Modèles de tests FoundrySuites de tests standard couvrant les vulnérabilités courantes (contrôle d'accès, arithmétique, delegatecall, etc.).test/templates/*
Audits de gaz et d'opcodesScripts pour profiler l'utilisation du gaz et signaler les opcodes coûteux.scripts/gas_profiler.sol
Aides au reportingGénérateurs de rapports JSON/Markdown pouvant être intégrés aux tableaux de bord CI.scripts/report_generator.sol
Intégration CIExemple de workflow GitHub Actions pour des exécutions d'audit automatisées..github/workflows/ci.yml

Tous les aides sont écrits pour Solidity ^0.8.20 et sont compatibles avec Foundry (forge, cast).


Démarrage rapide

root@kitploit:~
# 1️⃣ Cloner le dépôt
git clone https://github.com/your-org/evm-audit-helpers.git
cd evm-audit-helpers

# 2️⃣ Installer Foundry (si ce n'est pas déjà fait)
curl -L https://foundry.paradigm.xyz | bash
foundryup

# 3️⃣ Installer les dépendances
forge install

# 4️⃣ Exécuter la suite de tests par défaut (inclut les vérifications de réentrance, de stockage et de gaz)
forge test

Astuce : Ajoutez export FOUNDRY_PROFILE=ci à votre shell pour utiliser les paramètres du compilateur optimisés pour la CI.


Utilisation

1. Vérifications de réentrance

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

Exécutez le détecteur à l'exécution sur un contrat compilé :

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

2. Analyse de la disposition du stockage

root@kitploit:~
# Générer une description JSON de la disposition du stockage d'un contrat compilé
cast abi-storage --contract MyUpgradeable.sol:MyUpgradeable > storage.json

# Comparer avec une disposition de référence (par exemple, d'une version précédente)
forge script scripts/storage_analyzer.sol:StorageComparator \
    --sig "compare(string memory, string memory)" storage.json reference.json

Le script affichera les emplacements incompatibles, les ombrages potentiels et des suggestions pour les annotations @custom:oz-upgrades-unsafe-allow.

3. Modèles de tests Foundry

Copiez un modèle dans votre dépôt d'audit :

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

Modifiez MyContract.t.sol pour importer le contrat audité et exécutez :

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

4. Intégration CI

Ajoutez le workflow fourni à votre dépôt :

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

Le workflow signalera automatiquement les échecs et publiera un rapport Markdown en tant que commentaire sur la PR.


Contribution

Nous accueillons les contributions ! Veuillez suivre ces étapes :

  1. Forkez le dépôt et créez une branche de fonctionnalité (git checkout -b feat/<name>).
  2. Écrivez des tests pour tout nouvel aide ou correction de bug. Tout nouveau code doit avoir une couverture de 100 % (forge coverage).
  3. Exécutez la suite de linting (npm run lint – utilise solhint et prettier).
  4. Soumettez une Pull Request avec une description claire, une référence à un problème (si applicable) et un bref exemple de cas d'utilisation d'audit.

Style de code

  • Solidity : pragma solidity ^0.8.20;
  • Utilisez snake_case pour les fonctions internes, camelCase pour les fonctions publiques/externes.
  • Documentez chaque contrat/interface public avec NatSpec (///).

Environnement de développement

root@kitploit:~
# Installer les outils de linting
npm install

# Exécuter solhint
npx solhint 'src/**/*.sol' 'test/**/*.sol'

# Formatage automatique
npx prettier --write '**/*.sol'

Licence

evm-audit-helpers est distribué sous la licence MIT. Voir le fichier LICENSE pour plus de détails.


Bon audit !

Télécharger l’outil