Skip to content

ron4548/PISEClient

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PISE Client

PISE (Protocol Inference with Symbolic Execution) is a tool that leverages symbolic execution and automata learning to uncover the state machine of a protocol implemented in a given executable. It is available in two modules:

  • The server: for performing the symbolic execution. Implemented in Python.
  • The client (this repo): responsible for automata learning. Implemented in Java.

Prerequisites

  • Java JDK:

    • sudo apt install openjdk-11-jre-headless
  • Maven:

    • sudo apt install maven
  • GraphViz: for displaying state machines

    • sudo apt install graphviz

Dependencies

Installation

In order to start working with PISE, first clone this repo:

git clone https://github.com/ron4548/PISEClient.git
cd PISEClient

Install jdk, maven and GraphViz:

sudo apt install openjdk-11-jre-headless maven graphviz

Install maven dependencies:

mvn dependency:resolve

Compile PISEClient:

mvn compile

Running the client

First, you need to run an instance of The server suitable for the binary you want to reverse engineer.

Second, start the client by running:

mvn exec:java -Dexec.mainClass="com.pise.client.PiseLearner"

Talks & Paper

The PISE paper is available here.

Our Black Hat USA 2022 briefing is available here.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages