Pin : 快速入门
来源:互联网 发布:vscode nodejs 调试 编辑:程序博客网 时间:2024/06/05 07:28
友情链接:Pin 2.14 User Guide
什么是instrumentation
向程序中插入额外的代码来收集程序运行时状态
用于:程序分析,错误检测,调试;架构研究,处理器、缓存模拟;二进制翻译,改变程序行为,模拟不支持的指令
分类:source code instrumentation (SCI)和binary instrumentation(BI);其中BI又分为静态(运行前插入)和动态(运行时插入)
什么是Pin
Pin is Intel’s dynamic binary instrumentation engine.
pin为Intel公司出品的动态BI引擎,提供框架和API
pintool为运行在pin框架下的程序,负责具体任务,由C/C++编写,调用pin提供的API
快速入门(Mac版)
下载最新版的Pin
如pin-2.14-71313-clang.5.1-mac,pin命令在该目录下
build 以下目录所有的pintools
- source/tools/SimpleExamples
- source/tools/ManualExmaples
Usage: pin [OPTION] [-t <tool> [<toolargs>]] -- <command line>
官网示例中的代码在Mac系统下直接执行会报错:
大概意思是intel保护版权
$../../../pin -t obj-intel64/inscount0.so -- /bin/ls
E: Pin does not support signed applications. To "unsign" the application, copy the original application to a different location, then use: codesign -fs- <target application>
解决办法:
将/bin/ls命令复制到其他地方,如~/;运行以下命令移除签名
$ codesign -fs- ~/ls
replacing existing signature
另外,把命令中的.so改成.dylib(windows下是.dll,动态链接库)
$ ../../../pin -t obj-intel64/inscount0.dylib -- ~/ls
于是可以愉快地查看Mac下的ls命令有多少指令了~
$ cat inscount.out
Count 3442734
0 0
- Pin : 快速入门
- 2015年吉林省赛 Pin Pin Pin(矩阵快速幂)
- pin
- GOOGLE ADSENSE广告联盟收不到PIN码_快速表单身份验证PIN码方法
- intel强力分析工具Pin的使用入门(1)
- 快速入门
- OpenGL入门【1 快速入门】
- 一天入门Java快速入门
- Flask入门二:快速入门
- Django快速入门(入门)
- Pin Connections
- PIN初探
- pin 回顾
- pin技巧
- PIN PUK1
- PIN学习
- PIN码
- MAC && PIN
- 二十四周项目二--回溯法之走迷宫
- 寒假小练习——破译密码
- AOJ 0558 Cheese (bfs)
- Emoji表情 过滤 c#
- 【转】Python Numpy数组保存
- Pin : 快速入门
- hdu 1050 最大重叠数(贪心)
- 为什么Java程序占用的内存比实际分配给它的要多
- Android中ImageView内存溢出
- POJ 3669 Meteor Shower (bfs)
- 小范围解决 重复提交表单的问题
- 如何给你的Android 安装文件(APK)瘦身
- 【JAVA实现】层次聚类算法
- Sublime Text2 2.0.2版本破解以及汉化方法