Giter VIP home page Giter VIP logo

alarm's Introduction

ALARM Codebase

This repo contains the code accompanying the paper

ALARM: Active LeArning of Rowhammer Mitigations

by Amir Naseredini, Martin Berger, Matteo Sammartino and Shale Xiong. The paper was published at HASP 2022, and is available at https://arxiv.org/abs/2211.16942

How to build and run

The code is using make and Maven (https://maven.apache.org/). In order to run ALARM, you'll need to build the jar file by running

make

Then

  • Find the generated jar file in target
  • Run the code by
    java -jar <path to the jar>/ALARM-1.0.jar
    

Reproducing the plots in the paper

In order to generate all the plots in the paper simply run

java -jar <path to the jar>/ALARM-1.0.jar --plotter 

The resulting plots will be in a directory named plots.

All options

We list all available options for our code:

-h, --help              Help

-l, --learning          Learning Algorithm (options: ttt, lstar)

-o, --oracle            Equivalence Oracle (options: rw, wp, rwp)

-m, --memory-size       Number of memory rows (options: a non-negative number)

-t, --trr-counters      Number of TRR counters (options: a non-negative number)

-b, --bits              Maximum number of bits to get flipped in a memory row (options: a non-negative number)

-n, --number            Number of accesses to a row in each step (options: a non-negative number)

-s, --trr-threshold     Minimum number of accesses required to a row in an interval to trigger TRR (options: a non-negative number)

-r, --rh-threshold      Minimum number of accesses required to adjacent rows in an interval to trigger a possible bit flip in a row (options: a non-negative number)

-i, --interval          Minimum number of read/write required to issue a refresh to all the memory rows (options: a non-negative number)

-v, --visualise         Visualise and show the output automata

-x, --steps             Maximum number of steps for the Random Walk Eq Oracle (options: a positive number)

-p, --plotter           Run the plotter and plot the figures

-a, --plotter-minimal   Run the plotter in a minimal way without averaging and plot the figures

-e, --ecc-off           Turn off ECC in the memory

-f, --factor            Select a specific parameter to run the plotter against it (options: a positive number in [0,7])

alarm's People

Contributors

sahnaseredini avatar martinberger avatar

Watchers

 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.