Functrace – A Function Tracer

Functrace - A Function Tracer


functrace is a tool that helps to analyze a binary file with dynamic instrumentation using DynamoRIO (
These are some implemented features (based on DynamoRIO):

  • disassemble all the executed code
  • disassemble a specific function (dump if these are addresses)
  • get arguments of a specific function (dump if these are addresses)
  • get return value of a specific function (dump if this is an address)
  • monitors application signals
  • generate a report file
  • ghidra( coverage script (based on the functrace report file)


$ wget
$ tar xvzf DynamoRIO-Linux-7.0.0-RC1.tar.gz


$ wget
$ tar xvzf DynamoRIO-x86_64-Linux-7.91.18047-0.tar.gz

You can also clone and compile directly DynamoRIO

$ git clone
$ mkdir -p functrace/build
$ cd functrace/build
$ cmake .. -DDynamoRIO_DIR=/full_DR_path/cmake/
$ make -j4

Using functrace

$ drrun -c -report_file report -- target_program [args]

The following [functrace]( options are supported:

-disassembly                    -> disassemble all the functions 
-disas_func function_name -> disassemble only the function function_name
-wrap_function function_name -> wrap the function function_name
-wrap_function_args num_args -> number of arguments of the wrapped function
-cbr -> remove the bb from the cache (in case of conditional jump)
-report_file file_name -> report file name (required)
-verbose -> verbose

Simple usage

Option -verbose

$ drrun -c -report_file report -verbose -- target_program [args]

Option -disassemby

$ drrun -c -report_file report -disassembly -- target_program [args]

Option -disas_func

$ drrun -c -report_file report -disas_func name_function -- target_program [args]

Option -wrap_function and -wrap_function_args

$ drrun -c -report_file report -wrap_function name_function -wrap_function_args num_args -- target_program [args]

Option -cbr

$ drrun -c -report_file report -cbr -- target_program [args]

CVE-2018-4013 – Vulnerability Analysis
A vulnerability on the LIVE555 RTSP server library. This is the description.

Working enviroment
Tested on Ubuntu 16.04.5 LTS 64 bit

Future features

  • Ghidra plugin
  • Visual setup interface
  • Store and compare different coverage analysis
  • Run DR directy from ghidra
  • Add more functionality to functrace
  • Support for Android


Leave a Reply

Your email address will not be published. Required fields are marked *