A web application for disassembling Ethereum Virtual Machine (EVM) bytecode with a graphical user interface. Built with Python and JavaScript.
- Disassemble EVM bytecode into human-readable instructions
- Visualize control flow using an interactive graph
- Support for all EVM opcodes
- Modern, responsive user interface
- Cross-platform compatibility
- Python 3.8 or later
- Node.js (v16 or later)
- npm or yarn
- Clone the repository:
git clone https://github.com/yourusername/evm-disassembler.git
cd evm-disassembler
- Install frontend dependencies:
npm install
- Set up Python backend:
cd backend
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
- Start the application:
npm run start
This will start both the frontend (on http://localhost:3000) and backend (on http://localhost:8000) servers.
- Open your browser and navigate to http://localhost:3000
- Enter EVM bytecode in the input field (with or without "0x" prefix)
- Click "Disassemble" to process the bytecode
- View the disassembled instructions and control flow graph
Input bytecode:
0x6080604052348015600f57600080fd5b5060005b600a57600a5b5b5b5b
Output:
0x00: PUSH1 0x80
0x02: PUSH1 0x40
0x04: MSTORE
0x0f: JUMPDEST
0x10: JUMP
The project structure:
soler/
├── backend/ # Python backend
│ ├── main.py # FastAPI server
│ └── requirements.txt # Python dependencies
├── src/ # Frontend source
│ ├── index.html # Main HTML file
│ ├── styles.css # CSS styles
│ └── main.js # JavaScript code
├── docs/ # Documentation assets
│ └── screenshot.png # Application screenshot
├── package.json # Node.js dependencies
└── vite.config.js # Vite configuration
This project is licensed under the MIT License - see the LICENSE file for details.