专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 信息/网络安全

Pin学习笔记-装配及一些基本知识

发布时间:2011-07-03 06:58:49 文章来源:www.iduyao.cn 采编人员:星星草
Pin学习笔记--安装及一些基本知识

具体请见用户手册Pin 3.2 User Guide https://software.intel.com/sites/landingpage/pintool/docs/81205/Pin/html/index.html

一、在windows下安装过程:
1、安装Cygwin
Cygwin安装的时候,默认不安装make工具。需要在这一步的时候,使All后面的字变为install,可以保证所有组件默认安装(当然需要的时间也稍长一些)。也可以只选择make的哪个安装包,测试发现只安装这个包是没有问题的。
2、下载pin,解压
3、设置环境变量cygwin64\bin和pin.exe所在的目录
4、启动cmd,执行vcvars64.bat,进入pin下的source\tools\ManualExamples目录,make all TARGET=intel64,编译64位dll。
   启动cmd,执行vsvars32.bat,进入pin下的source\tools\ManualExamples目录,make all TARGET=ia32,编译32位dll。

二、三种级别的跟踪
INS_AddInstrumentFunction指令级跟踪INS_InsertCall
TRACE_AddInstrumentFunction 基本快跟踪,可以用来跟踪BBL BBL_InsertCall
IMG_AddInstrumentFunction IMG_AddUnloadFunction 映像跟踪

三、一些函数
RTN_AddInstrumentFunction 函数跟踪 RTN_InsertCall
PIN_AddThreadStartFunction 线程开始
PIN_AddThreadFiniFunction 线程结束
PIN_SafeCopy用于将指定数量的字节从源存储器区域复制到目标存储器区域。 即使源或目标区域无法访问(完全或部分),此功能也可确保安全返回到呼叫者。
PIN_AddFollowChildProcessFunction()
PIN_AddForkFunction()

四、其他

1、字符串

KNOB<string> KnobOutputFile(KNOB_MODE_WRITEONCE,  "string_family","o", "default_string", "description");
"o"表示命令行参数
pin -t obj-intel64/inscount0.so -o inscount0.log -- /bin/ls

2、
IPOINT_BEFORE 指令之前,或者函数开始的地方
IPOINT_AFTER 指令之后,或者函数ret的地方

3、在Windows上,如果在一个多线程应用程序运行的工具在回调函数中打开一个文件可以发生死锁。

4、Pin有两种模式,一种是JIT(Just In Time),个人理解为实时编译;另一种是Probe,个人理解为Hook。Probe更快,但是可以使用的Pin相关功能更少。

5、修改程序执行流程INS_InsertDirectJump INS_InsertIndirectJump INS_Delete

6、调试

pin -pause_tool 20 … 开始的时候暂停20秒,这时可以attach

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: