All Projects → crytic → evm_cfg_builder

crytic / evm_cfg_builder

Licence: AGPL-3.0 license
EVM CFG recovery

Programming Languages

python
139335 projects - #7 most used programming language
solidity
1140 projects

Projects that are alternatives of or similar to evm cfg builder

Armors Solidity
Armors-solidity is a framework to build secure smart contracts on Ethereum.
Stars: ✭ 184 (+121.69%)
Mutual labels:  evm
klara
Automatic test case generation for python and static analysis library
Stars: ✭ 250 (+201.2%)
Mutual labels:  cfg
chomsky-normal-form
Convert a Context Free Grammar (CFG) to Chomsky Normal Form (CNF)
Stars: ✭ 17 (-79.52%)
Mutual labels:  cfg
Pyquarkchain
Python implementation of QuarkChain
Stars: ✭ 194 (+133.73%)
Mutual labels:  evm
Sputnikvm
A Blockchain Virtual Machine
Stars: ✭ 238 (+186.75%)
Mutual labels:  evm
CSGO-Config-Presets
🎉​ Presets of Config files for many scenarios in CS:GO
Stars: ✭ 167 (+101.2%)
Mutual labels:  cfg
Ethabi
Encode and decode smart contract invocations
Stars: ✭ 172 (+107.23%)
Mutual labels:  evm
FIDL
A sane API for IDA Pro's decompiler. Useful for malware RE and vulnerability research
Stars: ✭ 421 (+407.23%)
Mutual labels:  reversing
asm2cfg
Python command-line tool and GDB extension to view and save x86, ARM and objdump assembly files as control-flow graph (CFG) pdf files
Stars: ✭ 42 (-49.4%)
Mutual labels:  cfg
fauton
An ecosystem of packages to work with automaton and parsers (dfa/nfa/e-nfa/regex/cfg/pda)
Stars: ✭ 36 (-56.63%)
Mutual labels:  cfg
Plasm
The Scaling DApps Platform on Polkadot using Plasma and State Channel.
Stars: ✭ 212 (+155.42%)
Mutual labels:  evm
Evm Tools
Ethereum Virtual Machine tools and guide
Stars: ✭ 238 (+186.75%)
Mutual labels:  evm
Cfg-Preset-By-Purp1e
该仓库已转移|CSGO Config Preset Abandoned, Visit Link →→→
Stars: ✭ 31 (-62.65%)
Mutual labels:  cfg
Ida Evm
IDA Processor Module for the Ethereum Virtual Machine (EVM)
Stars: ✭ 185 (+122.89%)
Mutual labels:  evm
config-parser
A slim, fully managed C# library for reading/writing .ini, .conf, .cfg etc configuration files.
Stars: ✭ 67 (-19.28%)
Mutual labels:  cfg
Securify
[DEPRECATED] Security Scanner for Ethereum Smart Contracts
Stars: ✭ 177 (+113.25%)
Mutual labels:  evm
ApexConfigs
Apex Legends configs for a competitve player
Stars: ✭ 52 (-37.35%)
Mutual labels:  cfg
DbgChild
Debug Child Process Tool (auto attach)
Stars: ✭ 221 (+166.27%)
Mutual labels:  reversing
goconfig
.gitconfig syntax parser
Stars: ✭ 15 (-81.93%)
Mutual labels:  cfg
left-recursion
Quick explanation of eliminating left recursion in Haskell parsers
Stars: ✭ 36 (-56.63%)
Mutual labels:  cfg

EVM CFG BUILDER

Build Status Slack Status PyPI version

evm-cfg-builder is used to extract a control flow graph (CFG) from EVM bytecode. It is used by Ethersplay, Manticore, and other tools from Trail of Bits. It is a reliable foundation to build program analysis tools for EVM.

We encourage contributions that address any known issues and will pay out bounties for accepted PRs. Join us on the Empire Hacking Slack to discuss using or extending evm-cfg-builder.

Features

  • Reliably recovers a Control Flow Graph (CFG) from EVM bytecode using a dedicated Value Set Analysis
  • Recovers functions names
  • Recovers attributes (e.g., payable, view, pure)
  • Outputs the CFG to a dot file
  • Library API

Usage

Command-line

To export basic dissassembly information, run:

evm-cfg-builder mycontract.evm 

To export the CFG of each function (dot format), run:

evm-cfg-builder mycontract.evm --export-dot my_dir 

dot files can be read using xdot.

Library

See examples/explore_cfg.py and examples/explore_functions.py for library examples.

How to install

Using Pip

pip install evm-cfg-builder

Using Git

git clone https://github.com/trailofbits/evm_cfg_builder
pip install .

Requirements

Getting Help

Feel free to stop by our Slack channel (#ethereum) for help using or extending evm-cfg-builder.

License

evm-cfg-builder is licensed and distributed under the AGPLv3. Contact us if you're looking for an exception to the terms.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].