Giter Site home page Giter Site logo

the-shank / arbitrar Goto Github PK

View Code? Open in Web Editor NEW

This project forked from petablox/arbitrar

0.0 1.0 0.0 77.97 MB

User Guided API Misuse Detection

Makefile 0.28% Python 25.86% Dockerfile 1.00% Shell 0.10% Rust 25.25% C 13.98% OCaml 32.64% Standard ML 0.90%

arbitrar's Introduction

Arbitrar: User Guided API Misuse Detection

This project aims to apply Active Learning on API Misuse detection. Arbitrar first fetch, compile, and analyze a given codebase, to create a database. After static analysis, the user will answer simple yes and no questions to guide the search on API Misuses.

Roughly, this tool provides the following:

  1. Data Collection - fetching real-life projects and compile
  2. Static Analysis - using symbolic execution to capture execution traces and extract features
  3. Learning - use active learning guided by human to detect API Misuses

How to use

Please first build the project, and then refer to doc/how_to_use.md to learn to use the tool.

Build

From Source

Infrastructure Prerequisites:

Application Prerequisites

  • Graphviz
  • libmagic

After installing the prerequisites, please run the following commands

$ make setup    # install the conda environments
$ make          # build the static analyzer in rust
$ make install  # install to ~/.local/bin for fast access of `arbitrar` command

Also, please refer to https://github.com/travitch/whole-program-llvm for tutorial to setup wllvm.

Docker

(Work In Progress)

The Data Collection framework of this project requires Linux/Ubuntu environment and the user needs to have root access. Therefore it's the best if we can use Docker Image. We prepared the docker image for you to play with:

cd docker/
docker build -f Dockerfile .
docker run -d --name arbitrar-docker
docker exec -it arbitrar-docker bash

The default user is aspire and the password is ai4code.

When you first run the docker container, please be sure to execute the following scripts:

# Inside user aspire's home directory
./install-arbitrar.sh

arbitrar's People

Contributors

anthonycanino1 avatar kihongheo avatar liby99 avatar

Watchers

 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.