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(https://ghidra-sre.org/) coverage script (based on the functrace report file)

Setup

$ wget https://github.com/DynamoRIO/dynamorio/releases/download/release_7_0_0_rc1/DynamoRIO-Linux-7.0.0-RC1.tar.gz
$ tar xvzf DynamoRIO-Linux-7.0.0-RC1.tar.gz

Or

$ wget https://github.com/DynamoRIO/dynamorio/releases/download/cronbuild-7.91.18047/DynamoRIO-x86_64-Linux-7.91.18047-0.tar.gz
$ tar xvzf DynamoRIO-x86_64-Linux-7.91.18047-0.tar.gz

You can also clone and compile directly DynamoRIO:

$ git clone https://github.com/invictus1306/functrace
$ mkdir -p functrace/build
$ cd functrace/build
$ cmake .. -DDynamoRIO_DIR=/full_DR_path/cmake/
$ make -j4

Also Read – SharpHide : Tool To Create Hidden Registry Keys

Simple DEMO

Using Functrace

$ drrun -c libfunctrace.so -report_file report — target_program [args]

Options

The following [functrace](https://github.com/invictus1306/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 libfunctrace.so -report_file report -verbose — target_program [args]

Option -Disassemby

$ drrun -c libfunctrace.so -report_file report -disassembly — target_program [args]

Option -Disas_Func

$ drrun -c libfunctrace.so -report_file report -disas_func name_function — target_program [args]

Option -wrap_function and -wrap_function_args

$ drrun -c libfunctrace.so -report_file report -wrap_function name_function -wrap_function_args num_args — target_program [args]

Option -CBR

$ drrun -c libfunctrace.so -report_file report -cbr — target_program [args]

CVE-2018-4013 – Vulnerability Analysis

A vulnerability on the LIVE555 RTSP server library. This is the description.

R K

Recent Posts

Shadow-rs : Harnessing Rust’s Power For Kernel-Level Security Research

shadow-rs is a Windows kernel rootkit written in Rust, demonstrating advanced techniques for kernel manipulation…

1 week ago

ExecutePeFromPngViaLNK – Advanced Execution Of Embedded PE Files via PNG And LNK

Extract and execute a PE embedded within a PNG file using an LNK file. The…

2 weeks ago

Red Team Certification – A Comprehensive Guide To Advancing In Cybersecurity Operations

Embark on the journey of becoming a certified Red Team professional with our definitive guide.…

3 weeks ago

CVE-2024-5836 / CVE-2024-6778 : Chromium Sandbox Escape via Extension Exploits

This repository contains proof of concept exploits for CVE-2024-5836 and CVE-2024-6778, which are vulnerabilities within…

3 weeks ago

Rust BOFs – Unlocking New Potentials In Cobalt Strike

This took me like 4 days (+2 days for an update), but I got it…

3 weeks ago

MaLDAPtive – Pioneering LDAP SearchFilter Parsing And Security Framework

MaLDAPtive is a framework for LDAP SearchFilter parsing, obfuscation, deobfuscation and detection. Its foundation is…

3 weeks ago