Intel Pin的安装与配置

简介

Pin是Intel开发的二进制动态插桩引擎,支持Windows、Linux、Mac、Android,并提供了API可发开自己的插桩工具

Pin - A Dynamic Binary Instrumentation Tool

环境配置

安装

  1. 下载pin并解压到目录下

  2. pin.exe备份重命名,新建pin32.batpin64.bat文件

  3. pin32.batpin64.bat文件中写入如下内容(64位的将ia32替换为Intel64

    1
    2
    @echo off
    %~dp0\ia32\bin\pin.exe %*
  4. 添加至环境变量PATH中,即可以使用pin32pin64

MyPinTool

在目录%PinDir%\source\tools\MyPinTool下有示例代码,使用VS编译即可,编译中可能存在错误,对照错误提示修改,主要的编译环境配置如下:

  • C/C++ --> 常规 --> 附加包含目录添加如下路径:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    ..\..\include\pin
    ..\..\include\pin\gen
    ..\InstLib
    ..\..\..\extras\components\include
    ..\..\..\extras\stlport\include
    ..\..\..\extras
    ..\..\..\extras\libstdc++\include
    ..\..\..\extras\crt\include
    ..\..\..\extras\crt
    ..\..\..\extras\crt\include\kernel\uapi
    ..\..\..\extras\crt\include\kernel\uapi\asm-x86

    对x86需要额外添加:
    ..\..\..\extras\crt\include\arch-x86
    ..\..\..\extras\xed-ia32\include\xed

    对x64需要额外添加:
    ..\..\..\extras\crt\include\arch-x86_64
    ..\..\..\extras\xed-intel64\include\xed
  • 链接器 --> 高级 --> 映像具有安全异常处理程序设置为

  • 链接器 --> 输入 --> 附加依赖项添加如下项目:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    pin.lib
    xed.lib
    pinvm.lib
    pincrt.lib
    kernel32.lib
    crtbeginS.obj

    x86需要额外添加:
    ntdll-32.lib

    x64需要额外添加:
    ntdll-64.lib

    编译完成后会在相应的生成目录下生成MyPinTool.dll

执行pin32 -t .\MyPinTool.dll -o log.log -- cmd /c echo 123,可记录MyPinTool.dll中基本块数目和指令数目

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2021 lzeroyuee
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信