Skip to content

Fingerprint Extraction and implementation identification#142

Open
ntua-el21001 wants to merge 12 commits into
protocol-fuzzing:mainfrom
ntua-el21001:main
Open

Fingerprint Extraction and implementation identification#142
ntua-el21001 wants to merge 12 commits into
protocol-fuzzing:mainfrom
ntua-el21001:main

Conversation

@ntua-el21001

Copy link
Copy Markdown

Overview

This PR implements the Adaptive Distinguish Graph (ADG) for fingerprint extraction and implementation identification.
The ADG is a decision tree with alternating inputs and outputs in edges. A leaf contains the possible models if the path leading to them is followed.

New fingerprint classes

FingerprintLTS: A Labelled Transition System (LTS)
FingerprintGenerateLTS.CombinedLTS: An LTS created from combining Mealy Machines with the metadata
FingerprintAutomaton: Wraps the combined LTS with the intermediate results of the algorithm
FingerprintCCSExpression: Class of a CSS Expression F := 0 | μ.F | F + F
FingerprintSplittingGraph: The splitting graph of an LTS. Contains CSS expressions that partition sets of states
FingerprintNode: A node of the returned ADG

FingerprintAdgWriter: Prints and ADG to a dot file
FingerprintGenerateLTS: Generates a CombinedLTS from MealyMachines, which includes a FingerprintLTS and its metadata
FingerprintParser: Turn dot files to Mealy Machines

FingerprintComputeCompatibility: Contains the functions to calculate the Compatibility relation of state pairs in a FingerprintLTS
FingerprintSplittingGraphExtraction: Extracts the splitting graph of an LTS
FingerprintExtractDecisionTree: Uses a splitting graph and a compatibility relation of a combined LTS to create a decision tree (ADG) that differentiates between the Mealy Machines used for the LTS

New identifier classes

IdentifierAdg: Holds the ADG to be used for identification
IdentifierAutomatonProvider: Holds hypotheses to be used for conformanceTest
IdentifierParser: Reads a dot file of the ADG and turns it into a IdentifierADG

Tests

FingerprintTest: contains unit tests for fingerprintExtraction

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants