A tool that can be used to learn state machines from implementations.
Find a file
Abdullah Al Ishtiaq 1bee355388
fix socket example for python 3 (#8)
* fix socket example for python 3
* Also still support Python2

Co-authored-by: Abdullah Al Ishtiaq <abdullah.ishtiaq@psu.edu>
Co-authored-by: Joeri de Ruiter <jderuiter@users.noreply.github.com>
2021-04-08 14:23:32 +02:00
examples fix socket example for python 3 (#8) 2021-04-08 14:23:32 +02:00
src/main/java/nl/cypherpunk/statelearner Add check whether number of input and output symbols match. 2018-11-21 09:40:14 +01:00
LICENSE Moved code to Git 2016-09-20 14:05:36 +02:00
pom.xml Moved code to Git 2016-09-20 14:05:36 +02:00
README.md Added link to website with state machine inference examples 2017-10-03 12:48:22 +02:00

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

  • graphviz

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: