Tiny Tracer – Pin Tool For Tracing API Calls

Tiny Tracer
Tiny Tracer

Tiny Tracer – A Pin Tool for tracing API calls etc

A Pin Tool for tracing:

  • API calls, including parameters of selected functions
  • Selected instructions: RDTSC, CPUID
  • Inline system calls, including parameters of selected syscalls
  • Transition between sections of the traced module (helpful in finding OEP of the packed module)
  • Bypasses the anti-tracing check based on RDTSC.

Generates a report in a .tag format (which can be loaded into other analysis tools):

RVA;traced event

i.e.

345c2;section: .text
58069;called: C:\Windows\SysWOW64\kernel32.dll.IsProcessorFeaturePresent
3976d;called: C:\Windows\SysWOW64\kernel32.dll.LoadLibraryExW
3983c;called: C:\Windows\SysWOW64\kernel32.dll.GetProcAddress
3999d;called: C:\Windows\SysWOW64\KernelBase.dll.InitializeCriticalSectionEx
398ac;called: C:\Windows\SysWOW64\KernelBase.dll.FlsAlloc
3995d;called: C:\Windows\SysWOW64\KernelBase.dll.FlsSetValue
49275;called: C:\Windows\SysWOW64\kernel32.dll.LoadLibraryExW
4934b;called: C:\Windows\SysWOW64\kernel32.dll.GetProcAddress
...

How to build

On Windows

  • To compile the prepared project you need to use Visual Studio >= 2012. It was tested with Intel Pin 3.26.
  • Clone this repo into \source\tools that is inside your Pin root directory. Open the project in Visual Studio and build. Detailed description available here.
  • To build with Intel Pin < 3.26 on Windows, use the appropriate legacy Visual Studio project.

On Linux

For now the support for Linux is experimental. Yet it is possible to build and use Tiny Tracer on Linux as well. Please refer tiny_runner.sh for more information. Detailed description available here.

Usage

Details about the usage you will find on the project’s Wiki.

WARNINGS

  • In order for Pin to work correctly, Kernel Debugging must be DISABLED.
  • In install32_64 you can find a utility that checks if Kernel Debugger is disabled (kdb_check.exe, source), and it is used by the Tiny Tracer’s .bat scripts. This utilty sometimes gets flagged as a malware by Windows Defender (it is a known false positive). If you encounter this issue, you may need to exclude the installation directory from Windows Defender scans.
  • Since the version 3.20 Pin has dropped a support for old versions of Windows. If you need to use the tool on Windows < 8, try to compile it with Pin 3.19.

Join Our Club

Enter your Email address to receive notifications | Join over Million Followers

Previous Article
IoT Security Device

U.S. Officials Announces Cyber Trust Mark For IoT Security

Next Article
Red Team Ethical Hacking Training

Unleashing the Power of Ethical Hacking: How Training Can Transform Your Cybersecurity Skills

Related Posts
Total
0
Share