Security analysis tool for WebAssembly and blockchain smart contracts
Top 64.2% on sourcepulse
Octopus is a security analysis framework designed for WebAssembly modules and blockchain smart contracts. It provides tools for disassembling bytecode, performing control flow and call flow analysis, converting to Static Single Assignment (SSA) form, and symbolic execution. The framework supports WebAssembly, Bitcoin, Ethereum (EVM and eWasm), EOS, and NEO.
How It Works
Octopus employs a multi-platform approach, leveraging specific parsers and analyzers for each supported architecture. It generates Control Flow Graphs (CFGs) and Call Flow Graphs to visualize program structure and function interactions. For deeper analysis, it utilizes symbolic execution with the Z3 solver to explore program paths and identify potential vulnerabilities.
Quick Start & Requirements
python-pip
, graphviz
, xdg-utils
) and then install Octopus via pip3 install octopus
or by cloning the repository and running python3 setup.py install
.graphviz
, requests
, z3-solver
, wasm
.docker pull smartbugs/octopus
and docker run -it smartbugs/octopus
.Highlighted Details
octopus_wasm.py
, octopus_eth_evm.py
) and Python APIs.Maintenance & Community
The project was sponsored by QuoScient. The primary author is Patrick Ventuzelo (@Pat_Ventuzelo). Further community engagement details are not explicitly provided in the README.
Licensing & Compatibility
Licensed under the MIT License, permitting commercial use and integration with closed-source projects.
Limitations & Caveats
The README indicates that some features are still in development (WIP) or not yet implemented (TODO) for certain platforms, particularly for advanced analyses like symbolic execution on Bitcoin and NEO. Linux is the primary supported OS.
1 year ago
1 week