{ "info": { "author": "Trail of Bits", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": "# EVM CFG BUILDER\n\n[![Slack Status](https://empireslacking.herokuapp.com/badge.svg)](https://empireslacking.herokuapp.com)\n[![PyPI version](https://badge.fury.io/py/evm-cfg-builder.svg)](https://badge.fury.io/py/evm-cfg-builder)\n\n`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.\n\nWe encourage contributions that address any known [issues](https://github.com/trailofbits/evm_cfg_builder/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc) and will pay out bounties for accepted PRs. Join us on the [Empire Hacking Slack](https://empireslacking.herokuapp.com) to discuss using or extending `evm-cfg-builder`.\n\n## Features\n\n* Reliably recovers a Control Flow Graph (CFG) from EVM bytecode using a dedicated Value Set Analysis\n* Recovers functions names\n* Recovers attributes (e.g., payable, view, pure)\n* Outputs the CFG to a dot file\n* Library API\n\n## Usage\n\n### Command line\n\nTo export basic dissassembly information, run:\n```\nevm-cfg-builder mycontract.evm \n```\n\nTo export the CFG of each function (dot format), run:\n```\nevm-cfg-builder mycontract.evm --export-dot my_dir \n```\n\ndot files can be read using xdot.\n\n### Library\nSee [examples/explore_cfg.py](examples/explore_cfg.py) and [examples/explore_functions.py](examples/explore_functions.py) for library examples.\n\n## How to install\n\n### Using Pip\n```\n$ pip install evm-cfg-builder\n```\n\n### Using Git\n```\ngit clone https://github.com/trailofbits/evm_cfg_builder\npip install .\n```\n\n## Requirements\n\n* Python >= 3.6\n* [pyevmasm](https://github.com/trailofbits/pyevmasm)\n\n## Getting Help\n\nFeel free to stop by our [Slack channel](https://empireslacking.herokuapp.com) (#ethereum) for help using or extending evm-cfg-builder.\n\n## License\n\n`evm-cfg-builder` is licensed and distributed under the AGPLv3. [Contact us](mailto:opensource@trailofbits.com) if you're looking for an exception to the terms.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/trailofbits/evm_cfg_builder", "keywords": "", "license": "AGPL-3.0", "maintainer": "", "maintainer_email": "", "name": "evm-cfg-builder", "package_url": "https://pypi.org/project/evm-cfg-builder/", "platform": "", "project_url": "https://pypi.org/project/evm-cfg-builder/", "project_urls": { "Homepage": "https://github.com/trailofbits/evm_cfg_builder" }, "release_url": "https://pypi.org/project/evm-cfg-builder/0.2.0/", "requires_dist": [ "pyevmasm (>=0.1.1)" ], "requires_python": ">=3.6", "summary": "EVM cfg builder written in Python 3.", "version": "0.2.0" }, "last_serial": 4769695, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "a6a8aff2e28b7a62e92335bc154cdd89", "sha256": "63549ad472268497e30c7556e31dbe1a1f5ff5ef6d8a9134c9527d68942115eb" }, "downloads": -1, "filename": "evm_cfg_builder-0.1.0-py3.6.egg", "has_sig": false, "md5_digest": "a6a8aff2e28b7a62e92335bc154cdd89", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">=3.6", "size": 2597736, "upload_time": "2018-12-07T17:49:52", "url": "https://files.pythonhosted.org/packages/c2/37/b5ec237e539d4725347ddbaa20b0cfbd3d9fce9a8c0c4a9a33671e3194af/evm_cfg_builder-0.1.0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "f807f4b81d6fd697ab5ce991ff87411d", "sha256": "e42c7cac628d82d8f907ea9ceb76f205041a35afaae784aa9a39b89cedf8b9cf" }, "downloads": -1, "filename": "evm_cfg_builder-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f807f4b81d6fd697ab5ce991ff87411d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 1273864, "upload_time": "2018-12-07T17:49:48", "url": "https://files.pythonhosted.org/packages/57/9a/5fd39131dd0a2843f84898dbb71d2db6dbaa5207ac810c4c9455e7d77b24/evm_cfg_builder-0.1.0-py3-none-any.whl" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "70d886d20609b09437b6d4b14281e8ee", "sha256": "04703f502a32abea2761d088c7d34593c14b4f35d5a93937e199c5f471aaa073" }, "downloads": -1, "filename": "evm_cfg_builder-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "70d886d20609b09437b6d4b14281e8ee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 1273803, "upload_time": "2019-02-01T19:45:16", "url": "https://files.pythonhosted.org/packages/c4/90/9f080acb9be363249da6ad152b083b1e224a713c8b50aad5ab4befafdb00/evm_cfg_builder-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9b5535cbe51b6b59f72687ce5dfe3f92", "sha256": "31c6357d11f7fc5e1a70ea2549672b4a95b2d444bc46f2866ac81a638262e3bc" }, "downloads": -1, "filename": "evm-cfg-builder-0.2.0.tar.gz", "has_sig": false, "md5_digest": "9b5535cbe51b6b59f72687ce5dfe3f92", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 1248446, "upload_time": "2019-02-01T19:45:20", "url": "https://files.pythonhosted.org/packages/9a/b6/41e74eec36ef527dc198192a641a4c32a0e17a6ab0f3edb77b6a32fb23c0/evm-cfg-builder-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "70d886d20609b09437b6d4b14281e8ee", "sha256": "04703f502a32abea2761d088c7d34593c14b4f35d5a93937e199c5f471aaa073" }, "downloads": -1, "filename": "evm_cfg_builder-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "70d886d20609b09437b6d4b14281e8ee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 1273803, "upload_time": "2019-02-01T19:45:16", "url": "https://files.pythonhosted.org/packages/c4/90/9f080acb9be363249da6ad152b083b1e224a713c8b50aad5ab4befafdb00/evm_cfg_builder-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9b5535cbe51b6b59f72687ce5dfe3f92", "sha256": "31c6357d11f7fc5e1a70ea2549672b4a95b2d444bc46f2866ac81a638262e3bc" }, "downloads": -1, "filename": "evm-cfg-builder-0.2.0.tar.gz", "has_sig": false, "md5_digest": "9b5535cbe51b6b59f72687ce5dfe3f92", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 1248446, "upload_time": "2019-02-01T19:45:20", "url": "https://files.pythonhosted.org/packages/9a/b6/41e74eec36ef527dc198192a641a4c32a0e17a6ab0f3edb77b6a32fb23c0/evm-cfg-builder-0.2.0.tar.gz" } ] }