Skip to content

Latest commit

 

History

History
78 lines (63 loc) · 4.22 KB

CONTRIBUTING.md

File metadata and controls

78 lines (63 loc) · 4.22 KB

Contributing to Mimesis

In the current prototype of Mimesis, it employs S2E for full-system symbolic execution to analyze a given network function program binaries together with the Linux kernel running in a QEMU KVM. We implemented a custom S2E plugin to control the symbolic execution process, combined with a kernel module built with SystemTap to automatically instrument the Linux kernel for (1) injecting a symbolic packet/frame as input, (2) recording the egress packets/frames, and (3) terminating the symbolic execution.

Background

To understand the design of Mimesis, it is encouraged to read through the code directly. However, the following documentations provide some background knowledge of S2E, SystemTap, QEMU, and BDDs, which may be helpful.

Where to start?

Please take a look at the code in an order similar to the following to understand how Mimesis works.

Improvements

Note
Please see the project notes for all the updates and action items.

Functional to-do items.

  • Parse the SMT constraints into BDD-based packet sets. (ongoing)
  • Build the library for BDD-based packet sets. (ongoing)
  • Create the NF model class/module. (ongoing)

Performance to-do items.

Participation

To report bugs, fix issues, or provide code changes, please either file an issue or submit a pull request.