Skip to content
No description, website, or topics provided.
OCaml Ruby Python Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


This is a public release of the system described in the paper "On the effectiveness of code normalization for function identification", published in the IEEE PRDC'18 conference.

The repository mainly contains two tools:

  • trivial-equiv, which implements the minimal normalization and equivalence algorithm described in the paper and
  • kamino, which implements the advanced normalization and equivalence checking

Building these tools requires a modified version of BAP 0.x, which is published alongside this repository. As this old version of BAP ties us to OCaml 3.12 (which is several years old), building the software is not as straightforward as it could be. It is highly recommended that you use the Dockerfile, which also documents the build procedure.

Some of the functionality which is not relevant to the paper has been cropped from this repository.


The evaluation described in the paper is implemented by the OCaml programs eval and clustering-eval. The evaluation set will be published separately.


Almost all of the OCaml code in this repository has been written by Angelos Oikonomopoulos and Remco Vermeulen while at the Vrije Universiteit Amsterdam. A small number of files are slightly modified versions of the respective modules in BAP.

You can’t perform that action at this time.