https://github.com/fergarrui/ethereum-bytecode-analyzer
Find contracts in the Ethereum blockchain, analyze its bytecode and filter by JSON custom rules
https://github.com/fergarrui/ethereum-bytecode-analyzer
analyzer blockchain bytecode ethereum ethereum-analyzer ethereum-bytecode graph smart-contracts symbolic-execution
Last synced: about 1 year ago
JSON representation
Find contracts in the Ethereum blockchain, analyze its bytecode and filter by JSON custom rules
- Host: GitHub
- URL: https://github.com/fergarrui/ethereum-bytecode-analyzer
- Owner: fergarrui
- License: gpl-3.0
- Created: 2017-11-21T07:43:23.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-06-06T11:11:45.000Z (about 8 years ago)
- Last Synced: 2025-04-01T20:22:02.764Z (about 1 year ago)
- Topics: analyzer, blockchain, bytecode, ethereum, ethereum-analyzer, ethereum-bytecode, graph, smart-contracts, symbolic-execution
- Language: Java
- Size: 128 KB
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ethereum-bytecode-analyzer
Find contracts in the Ethereum blockchain, analyze its bytecode and filter by JSON custom rules
## ~~This project is not ready yet. Work in progress...~~
### Discontinued at the moment. There are already similar tools that I cannot catch up
### It supports (or ~~will~~):
#### Done
* Bytecode disassembling
* Control Flow Graph (static)
* Control Flow Graph (dynamic/symbolic)
* Keeps a trace of every word used as output/input of any opcode involved in the execution of a function
#### ~~In progress~~ / partial
* Blockchain navigation
* Ethereum Virtual Machine implemented
* Symbolic execution
* Execution and analysis of all possible paths changing the values of the configured inputs
#### ~~Future/~~ Wanted
* Process engine to filter via custom rules
* Can check if there are stack elements at the end of every execution and try to remove the unnecessary operations that introduced them, reducing the gas of deploying and execution
* Reproduce a given transaction from the blockchain and draws a graph with the EVM state in every step, allowing debugging in one go