This project provides two components of Genius, a graph-based bug search framework. The first component is the raw feature extraction. The second is the online bug search engine.
-
The raw feature extraction is designed to achieve following two goals:
-> Extract the control flow graph for each binary function
-> Extract the attributes for each node in the grap
The feature extraction is built on top of IDA-pro. We wrote the scripts based on ida-python and extract the attributed control flow graph. ``preprocessing_ida.py'' is the main program to extract the ACFG.
-
The online bug search engine is used for real-time search:
-> It utilized localality sensitive hashing for indexing
-> Nearest-neighbor search algorithm for search
The online search is based on nearpy (https://github.com/pixelogik/NearPy).