pin ——pin tool代码注释 各pin tool的用途

pin tool 各个工具分类及作用:

 insount0                        记录指令执行的次数

 inscount                        记录指令执行的次数,与inscount0不同的是,它分BBL块记录然后累加

 itrace                              记录每个指令地址

pinatrace                        记录指令读取和写入的内存地址

imageload                      image载入或卸载时打印一条信息,image指与程序有关的所有数据结构(windows下是dll、exe)

proccount                       记录routine的数目和一个routine中指令执行的次数

safecopy                         记录程序从内存中复制信息到寄存器的指令

invocation                       说明和程序都有点暧昧,暂时没看懂

malloctrace                    输出malloc()和free()的输入参数以及malloc()的返回值

下面以malloctrace工具为例对pintool代码进行说明:

    前面已经说过,了解pintool的自定义函数是看懂其代码的关键,pintool的主函数可分为三个部分,输出文件建立部分、程序检测函数部分和结尾部分(忽略最后一句)。

输出文件建立部分确定输出文件的格式和说明内容,程序检测函数部分调用各函数对可执行程序进行检测,结尾部分一般为其自定义的Fini函数,用来做将检测数据写入输出文件、关闭文件等的收尾工作。

    显然,第二部分是最重要的一部分,从前面声明的函数可知,

IMG_AddInstrumentFunction函数调用Image函数,Image函数的参数为要监测的image,若image中含有malloc函数,则RTN_InsertCall函数一次调用Arg1Bfore和MallocAfter函数,这两个函数实现我们所要的输出,注意前面定义的写入文件的函数,这里是我们想要的输出,InsertCall函数调用这些写入函数,了解这些规律就很容易看懂这些代码。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值