二进制程序分析工具Pin在Windows系统中的安装和使用方法
这篇日志其实很弱智,也是因为换了新电脑,实验环境不全(当然,做这个实验我是在虚拟机里,因为接下来想拿些恶意代码的数据),所以这里记录一下在Windows下怎么安装和使用Pin这个程序分析领域最常用的工具之一,首先搬出论文来拜拜:
Luk, C., Cohn, R., Muth, R., Patil, H., Klauser, A., Lowney, G., Wallace, S., Reddi, V.J. and Hazelwood, K., Pin: building customized program analysis tools with dynamic instrumentation. in Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, (Chicago, IL, USA, 2005), ACM, 190-200.
Pin的主页是:http://pintool.org/ ,直接下载其最新的vc10即可。按照其User Guide,就可以进行编译和安装,这里有个需要特别注意的地方。之前的Pin版本中,支持通过Microsoft Visual Studio 2010的命令行运行nmake之类的批处理命令,从Pin 2.12版本开始,需要基于cygwin make来进行编译。比较坑爹的是,Cygwin安装的时候,默认不安装make工具。需要在下面这一步的时候,使All后面的字变为install,可以保证所有组件默认安装(当然需要的时间也稍长一些)。
当然,这是一种偷懒的方法,会下载很多不需要的安装包,所以最好保证硬盘空间足够。安装好Cygwin之后,将其安装目录下的bin目录,如“D:\cygwin\bin”加入到环境变量path中(最好加在其他所有变量之前,这样保证可以先用Cygwin进行解析),之后就可以直接在cmd中使用Cygwin的命令。例如:tar, ls, grep等;
设置好之后再打开Visual Studio 2010适合操作系统版本的命令行打开,例如我这里使用“Visual Studio 命令提示(2010)”,定位到“%Pin安装目录%\source\tools\ManualExamples” (所有的入门教程都教大家从Manual中的例子开始学习),然后运行make,就可以将该目录下的所有cpp文件进行编译了。
编译完成之后,还是在这个目录下,如果之前已经将Pin解压后的文件夹的位置(pin.exe上面一层文件夹)加入到path中,那么在命令行中运行:
pin -t obj-ia32\inscount0.dll -- calc
过一会就可以弹出被插桩后的计算器程序,关闭之后就会在当前目录下生成inscount文件,记录了计算器程序一共执行的指令个数。这就是Pin的最简单的安装和使用方法,希望能对初学的朋友有点指导作用。
二进制程序分析工具Pin在Windows系统中的安装和使用方法的更多相关文章
- Windows系统中 JDK安装及环境配置
需要安装jdk的第一步就是先去官网下载好JDK,选择需要的版本. Windows系统 1.将下载好的压缩包解压,点击解压得到的jdk执行文件开始安装.在安装过程中会弹出两个安装,一个是jdk,一个是j ...
- MSI安装程序在Win8/Win10及以上系统中DLL安装问题
报的错误是: There is a problem with this Windows Installer package. A DLL required for this install to co ...
- 控制面板里找不到“应用程序server”这个项目,Windows XP中金蝶安装时无“应用程序server”的解决的方法
要注意先安装IIS,再安装VS2008. 我们会常常在控制面板里找不到"应用程序server"这个项目.我们须要依照以下的步骤来操作就会Ok. 1.下载IIS6,放置到D盘根文件夹 ...
- Pyqt 获取windows系统中已安装软件列表
开始之前的基础知识 1. 获取软件列表 在Python的标准库中,_winreg可以操作Windows的注册表.获取已经安装的软件列表一般是读去windows的注册表: SOFTWARE\Micros ...
- Windows系统中Xshell与Linux连接时遇到的问题
前提条件:在Windows系统中已经安装了Xshell,并且安装了虚拟机软件和Linux系统 步骤1.在Linux系统中root用户下,使用ifconfig命令查看虚拟系统Linux的IP地址.如图1 ...
- WSL2:在Windows系统中开发Linux程序的又一神器
作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux. ...
- Linux程序分析工具:ldd和nm
ldd和nm是Linux下两个非常实用的程序分析工具.其中,ldd是用来分析程序运行时需要依赖的动态链接库的工具,nm是用来查看指定程序中的符号表信息的工具. 1 ldd 格式:ldd [option ...
- Cmder命令行工具在Windows系统中的配置
一.Cmder简介 Cmder:一款用于Windows系统中,可增强传统cmd命令行工具的控制台模拟器(类似于Linux系统中的终端控制窗口) 特点: 无需安装,解压即用 可使用较多Linux命令,如 ...
- linux程序分析工具
ldd和nm是Linux下两个非常实用的程序分析工具.ldd是用来分析程序运行时需要依赖的动态链接库的工具,nm是用来查看指定程序中的符号表信息的工具,objdump用来查看源代码与汇编代码,-d只查 ...
随机推荐
- bootstrap-datepicker 插件修改为默认中文
bootstrap-datepicker 是一个非常优秀的时间选择插件,默认是英文显示日期的,通过下面几个小修改让其支持默认中文 1.首先将 bootstrap-datepicker.js 另存为 u ...
- GUID转换成16位字符串或19位数据(确保唯一)
// <summary> /// 根据GUID获取16位的唯一字符串 /// </summary> /// <param name=\"guid\"& ...
- Arduino 电平转换 升压 OUTPUT与9V/12V元件通信
原因 网络上有不少怎么让Arduino的5V电平转换成3.3V电平,从而和工作在3.3V下的芯片相互沟通的教程.但是如果想驱动高于5V电压的芯片,就找不到教程了.因此今天我来介绍一种方式,能让Ardu ...
- linux 开机自动运行
1.开机启动时自动运行程序 Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init.init根据配置文件继续引导过程,启动其它进程.通常情况下,修改放置在 /etc/rc或 /et ...
- HDU5807 Keep In Touch (BestCoder Round #86 D ) 分布式dp
#include <cstdio> #include <cstring> #include <cmath> #include <vector> #inc ...
- Microsoft Office 2010 requires 的 MSXML 版本 6.10.1129.0 be 已安装在您计算机的安装"的基于 Windows 7 的计算机上安装 Office 2010 时出现错误消息
https://support.microsoft.com/zh-cn/kb/2290714
- eclipse 文本编辑器
Eclipse文本编辑器拥有编辑器的标准功能,包括数目不限的Undo(Ctrl+Z)和Redo(Ctrl+Y)操作.使用快捷键Ctrl+F后,会出现Find/Replace对话框,快捷键Ctrl+K或 ...
- python中函数的总结之三
1. 可变长参数 在函数中可变长参数分为两种:一种是非关键字参数,表示为元组:一种是关键字参数,表示为字典. 具体看下面的例子代码,相当于单元测试: #!/usr/bin/env python #'t ...
- 重新安装python
1. 在上次进行安装python的时候,很多东西不能用,例如后退键,删除键,都是不能在命令行中使用,主要原因是在编译python的时候,相关的安装包没有进行安装,从而导致出现乱码,在编译最新版本的py ...
- @Html.Raw()
asp.net mvc中把html字符串以html效果输出来, @string变更输出的是HTML代码, 如果想以HTML标签效果输出来可以用函数@Html.Raw(str) 输出来的就是网效果了, ...