Giter Club home page Giter Club logo

apifuzzing's Introduction

APIFuzzing

This is a plugin written in lua for cuberite. As the plugin name already indicates it's used for fuzzing and it can check the cuberite lua api.

There are two commands

  • fuzzing
  • checkapi

Fuzzing

The runme file has to be copied to the root folder of Cuberite, before running it.

Windows

Run the file runme.bat and it will startup Cuberite.

Linux

Run the file runme.sh and it will startup Cuberite.

Running

The server will be started and runs the console command fuzzing. If an crash occurs:

  • Under linux the script will automatically restart cuberite and run the command again
  • Under windows, you need to close the debugger message box that will appear, then cuberite will start and run the command again

The message Fuzzing completed! will be printed in the console, if the plugin is finished. If an crash has occured, in the home directory of the plugin will be a file named crashed_table.txt. It contains the class name, function name and the function call of all crashes.

In file inputs.lua at line 103 there is a for loop that adds params from number -100 to 100. When this part is enabled, fuzzing can take much more time. I recommend to enable this part only under a linux based system. Under windows it requires much more time to finish.

CheckAPI

Start the server and run the console command checkapi. The plugin will be finished if the message CheckAPI completed! appears. The results, if any, are in the console output and in cuberite log files.

Features

  • It can catch:
    • Syntax errors, indicates a problem in code generation of this plugin
    • Incorrect parameters in APIDoc or not documented
    • Function exists in the API, but is not exported or doesn't exists
    • Function is missing flag IsStatic in APIDoc
  • It can also compare the return types of the function call with the APIDoc

apifuzzing's People

Contributors

mathiascode avatar seadragon91 avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

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.