博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Pin - A Dynamic Binary Instrumentation Tool
阅读量:6763 次
发布时间:2019-06-26

本文共 2684 字,大约阅读时间需要 8 分钟。

hot3.png

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

07110423_kf1l.jpg | | |  | |  |

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 page. If that doesn't answer your question, you can search through the archives of the 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

  • (April 2012 - San Jose, CA and New Brunswick, NJ)
  • (April 2011, Chamonix, France)
  • (April 2010, Toronto, Canada)
  • Academia Sinica 2009 (May 2009 - Taipei, Taiwan) - and
  • ISCA 2008 (June 2008 - Beijing, China) - and
  • ASPLOS 2008 (March 2008 - Seattle, WA) - and materials 
  • PLDI 2007 (June 2007 - San Diego, CA) -

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

你可能感兴趣的文章
新手运营APP总结:把握住APP核心价值!
查看>>
你所不知道的SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧...
查看>>
图片编辑器如何修理图片
查看>>
CAD小白要怎么在CAD中绘制圆环体
查看>>
颉一软件查理:数据变现,始于流通
查看>>
U盘坏了可以修复吗,这里有N种方法解决
查看>>
大数据怎么入门
查看>>
MT47H64M16NF-25EM相关参数介绍
查看>>
C# FileStream简单介绍和使用
查看>>
死磕 java同步系列之ReentrantLock源码解析(二)——条件锁
查看>>
My Brother Rabbit 游戏攻略,mybrotherrabbit豆子怎么获取?
查看>>
小白成长之路4
查看>>
我的友情链接
查看>>
掌握python机器学习-读书笔记2 (导入数据 && 数据描述)
查看>>
Centos7 mount/ rpm/ yum 软件仓库搭建
查看>>
Linux 系统 文件目录简介
查看>>
EC2上源安装vnstat
查看>>
正则表达式详解
查看>>
如何将网络迁移到云中
查看>>
高性能Web服务之varnish应用详解及实战应用
查看>>