Skip to main content

No project description provided

Project description

Template Based Smart Contracts Static Analyzer

eBurger

eBurger releases GitHub Actions Workflow Status eBurger GitHub commit activity GitHub last commit PyPI - Downloads Issues Forefy Discord Forefy Twitter

Discord | Discussions | Feature request | Wiki | Twitter DM

What is eBurger

eBurger is a static analysis tool that provides a way to quickly query and analyze solidity smart contracts.

Running static analyzers won't win you competitions. What we provide instead with eBurger is the ability to spin up custom templates tailored to your current audited project in minutes (Wiki) allowing you to orchestrate unique lookups through the codebase to empower your audits.

How to install

From PyPi

pip3 install eburger
eburger -h

From source

git clone https://github.com/forefy/eburger.git
cd eburger
pip3 install .
eburger -h

How to run

Simple examples

Simplest:

cd MyProject/
eburger
cat eburger-output.json

SARIF output

eburger -f MyProject/ -o sarif

Markdown output

eburger -f MyProject/ -o markdown

Focused scan of a single file and it's dependencies:

eburger -f ../ProjectToScan/src/SomeContract.sol

Advanced usage

Refer to the Wiki.

How it looks like

Here's a demo video

https://github.com/forefy/eburger/assets/152717707/65bf6a6d-adbc-4664-84d4-73ac641a8307

Besides eburger-output.json, above example will also generate extended info under the folder .eburger.

SARIF support

SARIF (Static Analysis Results Interchange Format) is a standard format for static analysis tool results.

To have an interactive GUI open up in VSCode that can organinze and interact with the results found, follow these steps:

  • Install Microsoft's SARIF Viewer VSCode extenstion
  • Run eburger --output sarif
  • From within VSCode, click the resulted eburger-output.sarif file placed in the working directory

This will open an interactive vscode menu with the issues, description, navigation of vulnerable code lines, etc. eburger SARIF view

Contributing templates

Templates can be added by creating new YAML files and either load them with eburger -t mytemplate.yaml . or by placing them under the templates/ directory.

If you are using eburger as a python package (installed via pip install), the templates location can be found with running pip3 show eburger or by running the tool on a contract and seeing the templates path printed to the console.

For documentation refer to the Wiki.

Comparison table

Comparison of actively maintained / popular solidity smart contract static analyzers

Static Analyzer Language 2 Minutes to write a custom template with ChatGPT Many findings that are already found before the contest began Would want to eat
eBurger Python
Slither Python
4naly3er TypeScript 🤮
mythril Python
aderyn Rust

Forgot one or made a mistake? open a pull request or an issue :)

Features

  • YAML template support to query contract structure and raise insights for any matches
  • Fast learning curve for creating templates, ability to customize templates to the current ongoing audit project
  • Foundry and Hardhat support ❣️
  • SARIF support & VSCode GUI integration
  • Markdown report
  • Community and free support via Discord

What is missing

What features would you like to see? let us know!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eburger-1.0.0.tar.gz (36.3 kB view details)

Uploaded Source

Built Distribution

eburger-1.0.0-py3-none-any.whl (42.1 kB view details)

Uploaded Python 3

File details

Details for the file eburger-1.0.0.tar.gz.

File metadata

  • Download URL: eburger-1.0.0.tar.gz
  • Upload date:
  • Size: 36.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for eburger-1.0.0.tar.gz
Algorithm Hash digest
SHA256 b419cf252635da0117d5d97e647c8f0fdd446794c034c251a6fd37aa923f451e
MD5 2b200b1ae083869ce59ccffdae17b830
BLAKE2b-256 bea0811be86dee4a1dda768719caf8fa7bc07ab4cf97ff35fe076c468e221e9d

See more details on using hashes here.

File details

Details for the file eburger-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: eburger-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 42.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for eburger-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 04a4a6bbe7813c21ccca6d6cf898884cd3faed3a6f4c697880f134ab4e6ca60c
MD5 b26b3c5e657be7201c2b83e6bad316e5
BLAKE2b-256 49af6e3bf5bba93d23f61f2bf9615e9ebfc1e196f498558f93543a45c32d1121

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page