Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitLabGitLab/dannydoodlesstory/evm-audit-helpers
静态分析漏洞分析代码分析DevSecOps学习与教育精选资源
GitLabdannydoodlesstory/evm-audit-helpers

evm-audit-helpers

智能合约安全审计的 Solidity 代码片段与 Foundry 脚本合集

查看仓库
1321天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

evm-audit-helpers

GitHub license
GitHub stars
Foundry version
Build Status


概述

evm-audit-helpers 是一个精心整理的 Solidity 代码片段、Foundry 脚本和测试模板集合,旨在加速 EVM 智能合约安全审计。该仓库打包了针对常见审计问题的可复用构建模块,如重入攻击、存储布局不匹配和 gas 优化陷阱,使审计人员和开发者能够专注于逻辑而非样板代码。

核心目标:

  • 加快审计准备,提供现成的检查和模式。
  • 确保审计报告的一致性,通过提供标准测试套件。
  • 促进学习,通过文档完善的示例和最佳实践指南。

功能特性

类别描述主要文件
重入检查器辅助修饰符、nonReentrant 模式和运行时检测脚本。src/helpers/Reentrancy.sol、scripts/reentrancy_check.sol
存储布局分析器用于比较存储槽位、生成布局图并检测不安全升级的工具。src/helpers/StorageLayout.sol、scripts/storage_analyzer.sol
Foundry 测试模板覆盖常见漏洞(访问控制、算术、delegatecall 等)的样板测试套件。test/templates/*
Gas 与操作码审计用于分析 gas 使用情况并标记昂贵操作码的脚本。scripts/gas_profiler.sol
报告辅助工具可接入 CI 仪表板的 JSON/Markdown 报告生成器。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️⃣ 运行默认测试套件(包括重入、存储和 gas 检查)
forge test

提示: 在 shell 中添加 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

该脚本将输出不匹配的槽位、潜在的变量遮蔽问题,以及 @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

该工作流将自动标记失败项,并以 PR 评论的形式发布 Markdown 报告。


贡献指南

我们欢迎贡献!请遵循以下步骤:

  1. Fork 仓库并创建功能分支(git checkout -b feat/<name>)。
  2. 为任何新的辅助工具或 bug 修复编写测试。所有新代码必须具有 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 文件。


祝审计愉快!

下载工具