Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
This branch is 1 commit behind Yanivmd:master.

Latest commit


Git stats


Failed to load latest commit information.

What is TRACY?

TRACY is a search engine for binary functions, implemented in Python. Given a query, a function in binary form (as a part of an executable), TRACY searches other executables, and produces a similarity score between the search target and the query.

A full explenation about TRACY can be found in my paper, found here -

Running the code

The version of TRACY found in this repository is the last CLI version used during our work, which will enable anyone to try it without complex setup, but will require some work.

It should be clearly said that this code comes without any guarantee

The main file to run is '' To run it successfully you will need python 2.7, and a number of other publicly avilavle libs (pip is your friend) Then, you will need to change the source and target dirs pointed in the file. Note the structure of the dirs needed, and that all files must be gmls. To create gmls from elf or exe files use the '' with IDA pro (tested 6.4)

what does each file do? - generate stats for your db of samples - what the name say - this file contains the functions needed to compare 2 code blocks - the wrapper for the constraint solver - helper functions for dealing with gmls - helper class for printing csvs - this implements the other method we compared our method with, graphlets Last CLI enabled version. Last CLI enabled version. - the main file (see previous explanation) - multiple helper functions - this implements the other method we compared our method with, n-grams - creates tracelets - analyse code for compare and dataflow analysis









No releases published


No packages published