/FunctionBoundary

Dataset and Scripts for Function Boundary Detection -- See ACSAC Publication

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

FunctionBoundary

Dataset and Scripts for Function Boundary Detection -- See ACSAC Publication Jim Alves-Foss and Jia Song, "Function Boundary Detection in Stripped Binaries", ACSAC'19, 2019. https://doi.org/10.1145/3359789.3359825

Directories:

  • script contains executable scripts used to generate function boundaries for three tools: JIMA, nucleus and Ghidra; and a tool to countup the results. Also contains our JIM executable -- called "processJil".
  • ghidra_scripts contains the java file that Ghidra executes to calcalate the function boundaries. The file needs to be placed in your Ghidra scripts directory.
  • dataset contains most of the data sets we used in the paper. We had to remove the files greater than 100MB, which includes some of the files generated by SPEC and also Chrome.

Example:

mkdir tmpJIMA
cd tmpJIMA
../scripts/runJima --dir ../datasets/strippedTestSuites/x64gcc
../scripts/countMatch.py --binDir ./ --symDir ../datasets/groundTruth/x64gcc

This will create the data files from the JIMA tool, .res files for each file with details and .csv files with combined results

NOTE: To run nucleus, you will have to download and install it. Make sure the executable is on your path.

NOTE: To run ghidra, you will have to download and install it. Make sure the executable is on your path.