Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
evm-audit-helpers — 솔리디티 스니펫과 스마트 계약 보안 감사를 위한 Foundry 스크립트 모음 | Kitploit
도구/GitLabGitLab/dannydoodlesstory/evm-audit-helpers
Static AnalysisVulnerability AnalysisCode AnalysisDevSecOpsLearning & EducationCurated Resources
GitLabdannydoodlesstory/evm-audit-helpers

evm-audit-helpers

솔리디티 스니펫과 스마트 계약 보안 감사를 위한 Foundry 스크립트 모음

저장소 보기
3시간 23분 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

evm-audit-helpers

GitHub license
GitHub stars
Foundry version
Build Status


개요

evm-audit-helpers는 EVM 스마트 계약 보안 감사를 가속화하기 위해 설계된 Solidity 스니펫, Foundry 스크립트, 테스트 템플릿의 선별된 모음입니다. 이 저장소는 재진입(reentrancy), 스토리지 레이아웃 불일치, 가스 최적화 함정과 같은 일반적인 감사 문제에 대한 재사용 가능한 빌딩 블록을 번들로 제공하여, 감사자와 개발자가 보일러플레이트보다는 로직에 집중할 수 있게 합니다.

주요 목표:

  • 감사 준비 가속화: 즉시 사용 가능한 검사와 패턴 제공.
  • 감사 보고서 일관성 보장: 표준 테스트 스위트 제공.
  • 학습 촉진: 잘 문서화된 예제와 모범 사례 가이드 제공.

기능

카테고리설명주요 파일
재진입 검사기헬퍼 모디파이어, nonReentrant 패턴, 런타임 탐지 스크립트.src/helpers/Reentrancy.sol, scripts/reentrancy_check.sol
스토리지 레이아웃 분석기스토리지 슬롯 비교, 레이아웃 다이어그램 생성, 안전하지 않은 업그레이드 탐지 유틸리티.src/helpers/StorageLayout.sol, scripts/storage_analyzer.sol
Foundry 테스트 템플릿일반적인 취약점(접근 제어, 산술, delegatecall 등)을 다루는 보일러플레이트 테스트 스위트.test/templates/*
가스 및 Opcode 감사가스 사용량 프로파일링 및 고비용 opcode 플래그 지정 스크립트.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️⃣ 기본 테스트 스위트 실행 (재진입, 스토리지, 가스 검사 포함)
forge test

팁: CI 최적화 컴파일러 설정을 사용하려면 셸에 export FOUNDRY_PROFILE=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 댓글로 마크다운 보고서를 게시합니다.


기여

기여를 환영합니다! 다음 단계를 따라주세요:

  1. 저장소를 포크하고 기능 브랜치를 생성하세요 (git checkout -b feat/<name>).
  2. 새 헬퍼 또는 버그 수정에 대한 테스트를 작성하세요. 모든 새 코드는 100% 커버리지를 가져야 합니다 (forge coverage).
  3. 린팅 스위트를 실행하세요 (npm run lint – solhint 및 prettier 사용).
  4. 명확한 설명, 관련 이슈 참조(해당되는 경우), 간단한 감사 사용 사례 예시와 함께 Pull Request를 제출하세요.

코드 스타일

  • Solidity: pragma solidity ^0.8.20;
  • 내부 함수에는 snake_case, public/external에는 camelCase 사용.
  • 모든 public 컨트랙트/인터페이스를 NatSpec(///)로 문서화.

개발 환경

root@kitploit:~
# 린팅 도구 설치
npm install

# solhint 실행
npx solhint 'src/**/*.sol' 'test/**/*.sol'

# 자동 포맷
npx prettier --write '**/*.sol'

라이선스

evm-audit-helpers는 MIT 라이선스에 따라 배포됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.


즐거운 감사 되세요!

도구 다운로드