跳到主要内容
知仓学习社ZHICANG

mythril-symbolic

Symbolic execution analysis using Mythril for deep vulnerability detection in smart contracts. Supports configurable transaction depth, timeout sett…

不碰外部(只输出文字)无严重或高危命中a5c-ai/babysitter

它会碰到什么

扫了多少2 个文本文件,8 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

Mythril Symbolic Execution Skill

Deep vulnerability detection through symbolic execution using Mythril, a security analysis tool for EVM bytecode.

Capabilities

  • Symbolic Execution: Configure and run symbolic execution analysis
  • Transaction Depth Control: Set appropriate depth for complex interactions
  • Trace Analysis: Interpret symbolic execution traces
  • Integer Issues: Detect overflow/underflow paths (pre-0.8 Solidity)
  • State Analysis: Find reentrancy via state change analysis
  • Assertion Detection: Identify assertion failures and edge cases
  • PoC Generation: Generate proof-of-concept exploit inputs

Installation

# Install via pip
pip install mythril

# Or use Docker (recommended)
docker pull mythril/myth

# Verify installation
myth version

Basic Usage

Analyze Source Code

# Analyze single file
myth analyze Contract.sol

# Analyze with Solidity version
myth analyze Contract.sol --solv 0.8.20

# Analyze specific contract
myth analyze Contract.sol:MyContract

Analyze Bytecode

# Analyze deployed contract
myth analyze -a 0x<address> --rpc <rpc_url>

# Analyze bytecode file
myth analyze --bin-runtime contract.bin

Configuration Options

Transaction Depth

# Default depth (2)
myth analyze Contract.sol

# Increased depth for complex interactions
myth analyze Contract.sol --execution-timeout 300 -t 3

# Deep analysis (slow)
myth analyze Contract.sol --execution-timeout 600 -t 4

Timeout Settings

# Set execution timeout (seconds)
myth analyze Contract.sol --execution-timeout 300

# Set solver timeout
myth analyze Contract.sol --solver-timeout 10000

# Quick scan
myth analyze Contract.sol --execution-timeout 60 -t 2

Module Selection

# Run specific modules
myth analyze Contract.sol --modules ether_thief,suicide

# Available modules
# - ether_thief
# - suicide
# - integer_overflow/underflow
# - delegatecall
# - arbitrary_write
# - state_change_external_call

Output Formats

Standard Output

myth analyze Contract.sol

JSON Output

myth analyze Contract.sol -o json > report.json

Markdown Output

myth analyze Contract.sol -o markdown > report.md

JSONV2 (Detailed)

myth analyze Contract.sol -o jsonv2 > detailed.json

Vulnerability Detection

Reentrancy Detection

Mythril detects reentrancy by tracking:

  • External calls
  • State changes after calls
  • ETH transfers
==== External Call To User-Supplied Address ====
SWC ID: 107
Severity: Low
Contract: Vulnerable
Function name: withdraw()
PC address: 1234
Estimated Gas Usage: 2500 - 10000
Type: Informational
...

Integer Overflow/Underflow

==== Integer Overflow ====
SWC ID: 101
Severity: High
Contract: Token
Function name: transfer(address,uint256)
PC address: 567
Estimated Gas Usage: 3000 - 5000
A possible integer overflow exists in the function...

Unprotected Self-Destruct

==== Unprotected Selfdestruct ====
SWC ID: 106
Severity: High
Contract: Vulnerable
Function name: kill()
Any sender can trigger self-destruction...

Advanced Usage

Concolic Execution

# Use concrete values where possible
myth analyze Contract.sol --strategy dfs --execution-timeout 300

Custom Constraints

# Analyze with constraints file
myth analyze Contract.sol --constraints constraints.json

State Space Pruning

# Limit state explosion
myth analyze Contract.sol --max-depth 30 --call-depth-limit 3

CI/CD Integration

GitHub Actions

name: Mythril Analysis
on: [push]

jobs:
  mythril:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Run Mythril
        uses: docker://mythril/myth
        with:
          args: analyze /github/workspace/contracts/*.sol --solv 0.8.20

Custom Script

#!/bin/bash
for file in contracts/*.sol; do
    myth analyze "$file" --solv 0.8.20 -o json > "reports/$(basename $file .sol).json"
done

Interpreting Results

Severity Levels

| Level | Description | Action |

|-------|-------------|--------|

| High | Critical vulnerability | Fix immediately |

| Medium | Potential issue | Investigate |

| Low | Minor concern | Consider fixing |

| Informational | Code quality | Optional fix |

SWC Registry

| SWC ID | Name | Description |

|--------|------|-------------|

| SWC-101 | Integer Overflow | Arithmetic overflow |

| SWC-104 | Unchecked Return | Ignored return values |

| SWC-106 | Unprotected Destruct | Accessible selfdestruct |

| SWC-107 | Reentrancy | State change after call |

| SWC-110 | Assert Violation | Reachable assertion |

| SWC-116 | Timestamp Dependence | Block timestamp usage |

Process Integration

| Process | Purpose |

|---------|---------|

| smart-contract-security-audit.js | Deep vulnerability analysis |

| smart-contract-fuzzing.js | Complement to fuzzing |

| invariant-testing.js | Property verification |

Comparison with Other Tools

| Tool | Technique | Speed | Depth |

|------|-----------|-------|-------|

| Mythril | Symbolic Execution | Slow | Deep |

| Slither | Static Analysis | Fast | Surface |

| Echidna | Fuzzing | Medium | Medium |

| Certora | Formal Verification | Slow | Deepest |

Best Practices

  1. Start with quick scans, increase depth as needed
  2. Use Docker for consistent environment
  3. Run on CI for automated security checks
  4. Combine with static analysis (Slither)
  5. Verify findings manually before reporting
  6. Use appropriate Solidity version flag

Troubleshooting

Out of Memory

# Increase timeout, reduce depth
myth analyze Contract.sol --execution-timeout 600 -t 2

Solver Timeout

# Increase solver timeout
myth analyze Contract.sol --solver-timeout 30000

Compilation Errors

# Specify Solidity version
myth analyze Contract.sol --solv 0.8.20

# Use specific compiler
myth analyze Contract.sol --solc-json solc.json

See Also

  • skills/slither-analysis/SKILL.md - Static analysis
  • skills/echidna-fuzzer/SKILL.md - Property-based fuzzing
  • agents/solidity-auditor/AGENT.md - Security auditor
  • Mythril Documentation

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

它属于哪个仓库

星标★ 1,796
本站分层T1
该仓技能数2115
原文件路径library/specializations/cryptography-blockchain/skills/mythril-symbolic/SKILL.md

同一个仓库里的其他技能

看这个仓库的全部 2115 个技能