Skip to main content

Template Based Smart Contracts Static Analyzer

eBurger

eBurger releases eBurger GitHub repo size GitHub Actions Workflow Status eBurger GitHub commit activity GitHub last commit PyPI - Downloads Issues eBurger Jupyter Notebook Templates Playground 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.

Create your template

eBurger YAML Template

Run your template

eBurger YAML Template

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 (running from the project's directory)

eburger -o markdown

Focused scan of a single file and its dependencies

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

Only print nsloc count

eburger -f MyProject/ --nsloc

Run custom YAML templates

eburger -t MyCustomYAMLs/ -f MyProject/

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

GitHub Action

CI pipelines are supported via the eburger-action GitHub Action, it helps continuously assessing your code and viewing the raised insights on your repo's security pane.

eburger-action

eburger-action

Visit the action's page for more information.

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 prefer playing with eburger on the browser before installation, you can try the dedicated Jupyter notebook instance:

eBurger Jupyter Notebook Templates Playground

If you are using eburger as a python package (installed via pip install), the existing 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 template writing and 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 GitHub Action 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
  • GitHub Actions integration through eburger-action
  • Markdown report
  • Quick custom template generation via the eBurger Templates Generator GPT
  • Community and free support via Discord

What is missing

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

Metadata

Release files for eburger 1.0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eburger 1.0.7
File Size Uploaded
eburger-1.0.7.tar.gz 46.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for eburger 1.0.7
File Interpreter ABI Platform
eburger-1.0.7-py3-none-any.whl Python 3 none any Details

Total release size: 102.6 kB

Release files / eburger-1.0.7.tar.gz

Download URL eburger-1.0.7.tar.gz
Size 46.2 kB
Tags Source
SHA-256 checksum
How to use checksums
b94cdf91d6fe37388041d5486f06700fb566fa51fca897a260910d4c8219d0dd
BLAKE2b-256 checksum
How to use checksums
bef319acaa7c0d0c7df033b657da0f00ecf22493246a858774c2c3e183df2c6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.8

Release files / eburger-1.0.7-py3-none-any.whl

Download URL eburger-1.0.7-py3-none-any.whl
Size 56.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
88fdba1abfc1977325a16f5e4550f81aa25f209bd8b8dbda0b847690648b6e98
BLAKE2b-256 checksum
How to use checksums
c29192298ba56a5a65a230721699fc5b64481323610cf21dc5077516620a56bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.8

Release history Release notifications | RSS feed

This release

1.0.7 This release

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page