This is a project designed to extract control flow graphs and produce embeddings.
All of the following commands assume you are in the top-level directory of the repository unless stated otherwise
- First, you need to extract the data which you can do by running
extract_data.sh - You can generate the graphs by running
./graphgen - You then need to extract the graphs to the data folder by using
extract_graphs.sh - You can then generate the graph embeddings by running
python embed_graphs.py - You can generate the naive embeddings by running
python naive_vectors.py - You can fetch the generated code2vec embeddings by using
./get_vectors.sh - Fetch all python dependencies for this package by running
pip install requirements.txt - To view our analysis, run
jupyter-laband then open theAnalysis.ipynbandvisualize_vectors.ipynbin JupyterLab.