Giter Site home page Giter Site logo

rektifyai / smartcheck Goto Github PK

View Code? Open in Web Editor NEW

This project forked from smartdec/smartcheck

1.0 0.0 1.0 1.01 MB

SmartCheck – a static analysis tool that detects vulnerabilities and bugs in Solidity programs (Ethereum-based smart contracts).

License: GNU General Public License v3.0

Java 25.05% HTML 47.70% Solidity 25.98% Vyper 1.27%

smartcheck's Introduction

SmartCheck

SmartCheck is an extensible static analysis tool for discovering vulnerabilities and other code issues in Ethereum smart contracts written in the Solidity programming language.

SmartCheck is described in the academic paper titled "SmartCheck: Static Analysis of Ethereum Smart Contracts" as released on May 27, 2018.

⚠️ Warning

The project is deprecated since 2020. The analysis might work incorrectly for Solidity versions starting with 0.6.0.

Web version of SmartCheck that was available online earlier is shut down.

Using NPM package

Install SmartCheck globally

To install SmartCheck globally to your system run (administrative rights required)

npm install @smartdec/smartcheck -g

(Optional) Add SmartCheck as development dependency

To add and install SmartCheck as development dependency to your npm project run:

npm install --save-dev @smartdec/smartcheck

Start the analysis

To start analysis simply run:

smartcheck -p .

Required argument: -p <path to directory or file>. Optional argument: -r <path to .xml-file with rules>; by default it uses the built-in rules files.

Using source code of SmartCheck

⚠️ Warning

SmartCheck works only with older java8 versions, e.g. 8u102. You can download version for Windows from the archive.

Building the project

The project uses Maven. To build it, execute in the project directory:

$ mvn clean package

Start the analysis

$ java -jar target/smartcheck-2.0-SNAPSHOT-jar-with-dependencies.jar -p <path to directory or file>

Optional argument: -r <path to .xml-file with rules>; by default it uses the built-in rules files.

Analysis can also be started from an IDE by running the ru.smartdec.smartcheck.app.cli.Tool.main() method.

Advanced

View the parse tree in a graphical form

$ mvn exec:java@tree -Dexec.args="-p <path to the file>"

It can also be done from an IDE by running the ru.smartdec.smartcheck.app.cli.TreeView.main() method.

View the parse tree as XML

$ mvn exec:java@xml -Dexec.args="-t <path to save xml-tree> -s <path to the file>"

It can also be done from an IDE by running the ru.smartdec.smartcheck.app.cli.XmlView.main() method.

smartcheck's People

Contributors

voskresenskaya avatar sobolev-igor avatar 3q-coder avatar s-tikhomirov avatar bugaevc avatar pyushchenko avatar emarchenko avatar cleanunicorn avatar dependabot[bot] avatar elisabethar avatar

Stargazers

 avatar

Forkers

web3secresearch

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.