Expand description
EVM (Ethereum/Solidity) program analyzer with advanced analysis capabilities.
This crate provides comprehensive static and dynamic analysis for EVM smart contracts:
- AST Analysis: Parse Solidity using solc JSON AST via AstWalker
- Control Flow: Build and analyze control flow graphs
- Data Flow: Track variable definitions, uses, and taint propagation
- Bytecode Analysis: Disassemble and analyze compiled EVM bytecode
- Symbolic Execution: Verify invariants hold for all inputs
Re-exports§
pub use analyzer::EvmAnalyzer;pub use ast::AstContract;pub use ast::SolidityParser;pub use ast::Visibility;pub use ast_types::AstNode;pub use ast_types::SourceUnit;pub use ast_walker::AstVisitor;pub use ast_walker::AstWalker;pub use bytecode::BytecodeAnalyzer;pub use bytecode::Instruction;pub use bytecode::Opcode;pub use cfg::ControlFlowGraph;pub use dataflow::DataFlow;pub use errors::AnalysisError;pub use errors::AnalysisResult;pub use symbolic::SymbolicExecutor;
Modules§
- analyzer
- EVM analyzer implementation with advanced static analysis capabilities.
- ast
- Solidity source code and AST parsing using solc compiler.
- ast_
types - Type definitions for Solidity AST from solc JSON output.
- ast_
walker - AST visitor pattern for walking and analyzing Solidity AST.
- bytecode
- EVM Bytecode analysis and disassembly.
- cfg
- Control Flow Graph (CFG) construction and analysis.
- dataflow
- Data Flow Analysis for value and taint tracking.
- detectors
- AST-based vulnerability detectors for EVM smart contracts.
- errors
- Error types for EVM analysis operations.
- symbolic
- Symbolic Execution for invariant verification.