Pin - A Dynamic Binary Instrumentation Tool

本文详细介绍了Pin,一个用于IA-32和x86-64指令集架构的动态二进制仪器化框架。Pin允许创建用于程序分析的工具,并在Linux和Windows的用户空间应用程序上运行。它支持在编译后的二进制文件上进行运行时的仪器化,无需重新编译源代码,适用于动态生成代码的程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Submitted by Sion Berkowits ... onWed, 06/13/2012 - 00:41

07110423_kf1l.jpg 07110423_MHwr.gif Home | News | DownloadsFAQ | NewsgroupPapers | PinPoints

Overview

Pin is a dynamic binary instrumentation framework for 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 Parallel Inspector, Intel Parallel Amplifier and Intel Parallel Advisor. The tools created using Pin, called Pintools, can be used to perform program analysis on user space applications in Linux and Windows. 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.


Distribution

Pin is proprietary software developed and supported by Intel and is supplied free of charge for non-commercial use. Pin includes the source code for a large number of example instrumentation tools like basic block profilers, cache simulators, instruction trace generators, etc. It is easy to derive new tools using the examples as a template.


Quick Links

Getting Started

The best way to get started is to read the user's manual. Pin developers also regularly organize tutorials and workshops. They are held at conferences and universities.

Technical Support

If you have specific questions after reading the user's manual, you should first check the FAQ page. If that doesn't answer your question, you can search through the archives of the Pinheads newsgroup to see if anyone else asked your question. Finally, if that doesn't solve your problem, feel free to post a message to the newsgroup (don't forget to include your Pin kit number, operating system, processor, and gcc version).

User's Manual

Tutorials

转载于:https://my.oschina.net/zhuzihasablog/blog/100491

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值