


The value of NUM_GNN_LAYERS should be the same as in training. If model_iter495 is the checkpoint that performed best on the validation set during training (this is the case in the provided trained model). Python3 -u gnn.py -test procedure_representations/data.test \ Training a Nero-GNN model is performed by running the following command line: Predicting Procedure Names Using Neural ModelsĪs we show in our paper, Nero-GNN is the best variation of our approach, and so we focus on and showcase it here. data.test - The (preprocessed) test set samples.data.val - The (preprocessed) validation set samples.Files for training the model: data.dict and ain (the dictionary and preprocessed training set samples accordingly).preprocessed: The raw procedure representations preprocessed for training.Each procedure is represented by one line in the relevant file for each set (training.json, validation.json and test.json) raw: The raw representations for all the binary procedures in the above dataset.
#Nero 8 codes archive
The procedure representations for the binaries in our dataset can be foundĮxtracting the procedure representations archive will create the folder procedure_representations and inside it two more folders: Note that this step require TensorFlow and other components mentioned here. This will preprocess the training( train.json), validation( validation.json) and test( test.json) files. Python3 preprocess.py -trd train.json -ted test.json -vd validation.json -o data

Next, to filter and collect all the indexed procedures into one JSON file:
#Nero 8 codes install
Using a licensed IDA-PRO installation for Linux, all of these requirements were verified as compatible for running on an Ubuntu 20 machine (and with some more effort even on Ubuntu 16).įor Ubuntu 20, you can use the requirements.txt file in this repository to install all python packages against the native python3.8 version:
