Logo
Sign in

Pin is a dynamic binary instrumentation framework for the IA-32, x86-64 and MIC instruction-set architectures that enables the creation of dynamic program analysis tools.

Vendor

Vendor

Intel Corporation

Company Website

Company Website

Product details

A Dynamic Binary Instrumentation Tool

Pin is a dynamic binary instrumentation framework for the the IA-32 and x86-64 instruction-set architectures that enables the creation of dynamic program analysis tools. Some tools built with Pin are Intel® VTune™ Amplifier, Intel® Inspector, Intel® Advisor and Intel® Software Development Emulator (Intel® SDE). The tools created using Pin, called Pintools, can be used to perform program analysis on user space applications on Linux*, Windows* and macOS*. As a dynamic binary instrumentation tool, instrumentation is performed at run time on the compiled binary files. Thus, it requires no recompiling of source code and can support instrumenting programs that dynamically generate code.

Pin provides a rich API that abstracts away the underlying instruction-set idiosyncrasies and allows context information such as register contents to be passed to the injected code as parameters. Pin automatically saves and restores the registers that are overwritten by the injected code so the application continues to work. Limited access to symbol and debug information is available as well. Pin was originally created as a tool for computer architecture analysis, but its flexible API and an active community (called "Pinheads") have created a diverse set of tools for security, emulation and parallel program analysis.

Features

  • Dynamic Instrumentation: Perform instrumentation at runtime on compiled binaries.
  • Cross-Platform Support: Compatible with Linux, Windows, and macOS.
  • Rich API: Abstracts instruction-set idiosyncrasies and manages context information.
  • No Recompiling Required: Supports instrumenting programs that dynamically generate code.
  • Community and Flexibility: Originally for computer architecture analysis, now used for security, emulation, and parallel program analysis.
Find more products by category
Development SoftwareView all