Bitflip Fault Simulation Platform by Daniele Rizzieri (2021)

Related tags

Miscellaneous BFSP
Overview

BFSP [v1.05]

Bitflip Fault Simulation Platform by Daniele Rizzieri (2021)
The platform injects a random bitflip in each of N copies of a binary file. Then it executed them, analysing the outcomes.

Requirements

Required Linux packages:

  • python3
  • procps
  • gdb
  • systemd-coredump

Test Binary File Guidelines

In order to be properly testable, the program under test must be compliant with the following guidelines:

  1. Application's output must be redirected to the standard output virtual file (i.e., it must be instructed to print the functional results to screen/console)
  2. Application's behaviour and functional output must be fully deterministic: the tester must ensure that the entire code does not depend on time or other random variables. Examples:
    • if some kind of randomization function is involved, the tester must fix the randomization seed;
    • if some kind of time related function is involved, the tester must either suppress it or fix the time dependant variable;
  3. The test application must be compiled from code, following the here reported guidelines:
    1. During the compilation the debug symbols must be included using the GCC option "-g"
    2. The application must be statically linked, through the "-static" compilation option
    3. When compiling, the tester should avoid the compiler optimization options "-o#"

Quick Start

  1. Remember to set a value for the global setting variables in the code, not accessible via command parameters (see bfsp.py for more details):

    • binary file name
    • binary arguments
    • hang timeout
  2. Put SW executable file*** under test in ./run/ folder
    [*** Read carefully Test Binary File Guidelines section]

  3. Type "python3 bfsp.py -h" or "python3 bfsp.py --help" for usage info:

> Usage: python3 bfsp.py -n N [options]
   required:
      -n N,              N = number of injections
   options:
      -s r_seed,          Set the random seed to r_seed
      -v, --verbose,   To produce verbose output report
      -c, --clean,       To clean the bitflipped libraries folder and exit
      -z, --zip,           To compact all the reports in ./reports/ in a summary\

  1. See crash report in the file indicated at end of execution.

  2. See execution report in the file indicated at end of execution.

Output File Locations

  • ./bitflipped_binaries/ --> binaries with injected bitflips
  • ./bitflipped_binaries/results/ --> functional results of the binaries
  • ./core_dumps/ --> coredump files of crashed processes in
  • ./gdb_logs/ --> log files from gdb analysis of the coredumps
  • ./exec_reports/ --> reports with info about the exit codes and hang processes
  • ./crash_reports/ --> reports with info about the crashed processes
You might also like...
Step by step development of a vending coffee machine project, including tkinter, sqlite3, simulation, etc.

Step by step development of a vending coffee machine project, including tkinter, sqlite3, simulation, etc.

Percolation simulation using python
Percolation simulation using python

PythonPercolation Percolation simulation using python Exemple de percolation : Etude statistique sur le pourcentage de remplissage jusqu'à percolation

Python script to combine the statistical results of a TOPAS simulation that was split up into multiple batches.

topas-merge-simulations Python script to combine the statistical results of a TOPAS simulation that was split up into multiple batches At the top of t

MeerKAT radio telescope simulation package. Built to simulate multibeam antenna data.

MeerKATgen MeerKAT radio telescope simulation package. Designed with performance in mind and utilizes Just in time compile (JIT) and XLA backed vectro

Simulation simplifiée du fonctionnement du protocole RIP

ProjetRIPlay v2 Simulation simplifiée du fonctionnement du protocole RIP par Eric Buonocore le 18/01/2022 Sur la base de l'exercice 5 du sujet zéro du

WATTS provides a set of Python classes that can manage simulation workflows for multiple codes where information is exchanged at a coarse level

WATTS (Workflow and Template Toolkit for Simulation) provides a set of Python classes that can manage simulation workflows for multiple codes where information is exchanged at a coarse level.

Liquid Rocket Engine Cooling Simulation

Liquid Rocket Engine Cooling Simulation NASA CEA The implemented class calls NASA CEA via RocketCEA. INSTALL GUIDE In progress install instructions fo

An ultra fast cross-platform multiple screenshots module in pure Python using ctypes.

Python MSS from mss import mss # The simplest use, save a screen shot of the 1st monitor with mss() as sct: sct.shot() An ultra fast cross-platfo

The Open edX platform, the software that powers edX!

This is the core repository of the Open edX software. It includes the LMS (student-facing, delivering courseware), and Studio (course authoring) compo

Owner
Daniele Rizzieri
Research Fellow @ DAUIN, PoliTo
Daniele Rizzieri
Runtime fault injection platform by Daniele Rizzieri (2021)

GDBitflip [v1.04] Runtime fault injection platform by Daniele Rizzieri (2021) This platform executes N times a binary and during each execution it inj

Daniele Rizzieri 1 Dec 7, 2021
Runtime fault injection platform by Daniele Rizzieri

GDBitflip [v1.04] Runtime fault injection platform by Daniele Rizzieri (2021) This platform executes N times a binary and during each execution it inj

Daniele Rizzieri 1 Dec 7, 2021
Simulation-Based Inference Benchmark

This repository contains a simulation-based inference benchmark framework, sbibm, which we describe in the associated manuscript "Benchmarking Simulation-based Inference".

SBI Benchmark 59 Aug 30, 2022
A simple 3D rigid body simulation written in python

pyRigidBody3d A simple 3D rigid body simulation written in python

null 30 Aug 9, 2022
A web app for presenting my research in BEM(building energy model) simulation

BEM(building energy model)-SIM-APP The is a web app presenting my research in BEM(building energy model) calibration. You can play around with some pa

null 8 Sep 3, 2021
Arknights gacha simulation written in Python

Welcome to arknights-gacha repository This is my shameless attempt of simulating Arknights gacha. Current supported banner types (with potential bugs)

Swyrin 3 May 7, 2022
A totally unrealistic cell growth/reproduction simulation.

A totally unrealistic cell growth/reproduction simulation.

Andrien Wiandyano 1 Oct 24, 2021
Python module for creating the circuit simulation definitions for Elmer FEM

elmer_circuitbuilder Python module for creating the circuit simulation definitions for Elmer FEM. The circuit definitions enable easy setup of coils (

null 5 Apr 27, 2022
Store Simulation

Almacenes Para clonar el Repositorio: Vaya a la terminal de Linux o Mac, o a la cmd en Windows y ejecute:

Johan Posada 1 Nov 12, 2021
Verification of Monty Hall problem by experimental simulation.

Verification of Monty Hall problem by experimental simulation. |中文|English| In the process of learning causal inference, I learned about the Monty Hal

云端听茗 1 Dec 1, 2021