this tool generates PoC automatically for propagated vulnerability in cloned software
Intel PIN 3.13 (https://software.intel.com/content/www/us/en/develop/articles/pin-a-binary-instrumentation-tool-downloads.html)
make PIN_ROOT=~/mypin/pin ./obj-intel64/taint_test.soIf OctoPoCs's source directory is out of the PIN kit directory, you should specify the path of PIN kit directory.
pin -t ./obj-intel64/taint_test.so -v [ep] -i [poc] -- [cmd]-
ep : vulnerable function name
you should put the bottommost function of the call stack among shared(cloned) functions
-
poc : poc file name
-
cmd : command that execute the testing binary
It contains the poc file name
-
Warning
you should execute this command in the directory that contains poc file
angr (https://docs.angr.io/introductory-errata/install)
main source file : generatePoC.py
there are 9 arguments
-
cmd : command that execute target binary, it should include a name of new poc.
-
ep : ep function name (the bottomost function in callstack), you can get more information in the paper.
-
e_count : a number of times ep is executed
-
oldpoc : a name of original poc
-
primitive : the primitive file, output of module 1
-
prim_fd : a list of bunch division offsets
-
stacknum : CFG context sensitivity level
-
c_flag : set bunch flag
-
newpoc : a name of new poc, this must be included in cmd