jderuiter / statelearner

A tool that can be used to learn state machines from implementations.
Apache License 2.0
60 stars 18 forks source link

StateLearner

StateLearner is a tool that can learn state machines from implementations using a black-box approach. It makes use of LearnLib for the learning specific algorithms.

This tool can be used for TLS implementations, smart cards and can be extended using its socket module.

An overview of different security protocols where state machine learning has been applied can be found here.

Requirements

Build

Build a self-contained jar file using the following command:

mvn package shade:shade

Usage

java -jar stateLearner-0.0.1-SNAPSHOT.jar <configuration file>

Example configurations can be found in the 'examples' directory. To run the OpenSSL example:

cd examples/openssl
java -jar ../../target/stateLearner-0.0.1-SNAPSHOT.jar server.properties

Publications

StateLearner (or one of its predecessors) has been used in the following publications: