-->

윈도우에서 DBI pintool 설치, 예제파일 컴파일 및 사용하기

pintool은 DBI(Dynamic Binary Instrumentation) 툴 중 하나로 리눅스에서는 pintool 사용이 쉬운편인데 윈도우용 Pin은 정리된 글이 많이 없어서인지 사용하는데 삽질을 좀 했다. 

 

 

cygwin64, Window pin 다운로드

64bit라는 가정하에 cygwin64, 윈도우용 Pin, 비쥬얼스튜디오 x64 가 필요하다.

 

cygwin64 다운로드 및 설치

일단 첫번째로 cygwin은 64bit 버전으로 아래 링크에서 다운받는다.

 


cygwin 다운로드 페이지

 

Cygwin Installation

Cygwin Get that Linux feeling - on Windows Installing and Updating Cygwin Packages Installing and Updating Cygwin for 64-bit versions of Windows Run setup-x86_64.exe any time you want to update or install a Cygwin package for 64-bit windows. The signature

www.cygwin.com

 

 

make를 사용하기 위한 것이므로 설치 중간에 패키지를 선택하는 부분에서 Devel Pakage만 Default->install로 변경해준다. 참고로 이 이후에 설치과정이 상~~~당히 오래걸린다.

 

Cygwin64 설치 과정 - 1

 

정상적으로 설치가 완료됐다면 아래와 같이 창이 떠야 한다.

 

Cygwin64 설치 완료

 

그리고 cygwin64가 설치된 폴더의 bin 폴더에 make가 있기 때문에 cygwin64\bin 경로를 Path 변수에 추가해준다.

 

Cygwin64 bin 폴더 환경변수 추가

 

 

Window Pin 다운 및 설치

윈도우 Pin은 아래 링크에서 zip파일을 다운받을 수 있다.

 


윈도우 Pin 다운로드 페이지

 

Pin - A Binary Instrumentation Tool - Downloads

By Osnat Levi, published on June 13, 2012, updated June 25, 2018

software.intel.com

 

 

64bit 32bit 구분이 없기 때문에 원하는 버전을 다운받으면 되는데 난 비쥬얼 스튜디오 최신버전을 사용하고 있지 않으므로 뭔가 Pin 최신버전은 안될 것 같은 느낌적인 느낌에 Pin 3.11을 다운받아 주었다. zip파일이기 때문에 따로 설치과정 없이 압축만 풀면 끝이다.

 

윈도우 Pin 다운로드

 

 

윈도우 Pin 예제파일 컴파일

이제 예제파일을 컴파일해볼텐데 일단 pin이 설치된 곳에서 source\tools\ManualExamples 폴더로 가면 예제파일이 여러개가 있다.

 

 

 

그리고 같은 폴더에 makefile.rules 룰파일이 있는데 그 중 TEST_TOOL_ROOLTS := 뒷 부분에 컴파일 하고싶은 예제파일을 써넣어주면 된다. 디폴트로 여러 파일이 적혀있는데 inscount1.cpp 만 빌드해볼 것이기 때문에 makefile.rules 에서 해당부분을 다 지우고 inscount1 파일만 써주었다.

 

 

 

나는 inscount1.cpp만 빌드해볼 것이기 때문에 makefile.rules에서 해당부분을 다 지우고 inscount1만 써주었다.

 

 

 

그리고 이제 정말로 컴파일하는 일만 남았다. 비쥬얼 스튜디오가 설치되었다면 visual studio command prompt가 있을 것이다. 여기서 삽질을 좀 했는데 프롬프트가 여러갠데 여기서 x64용을 사용해주어야 한다. 계속 x64와 x32가 충돌한다는 문제가 있었기 때문에 프롬프트를 정확히 64인것으로 사용해야하는 것 같았다.


해당 프롬프트를 켜고 source\tools\ManualExamples 로 이동한 후 make 명령어로 컴파일을 진행한다. (cmd창은 정말이지 캡쳐 시 화질이 너무 안좋다ㅠㅠ)

 

윈도우 Pin inscount1 예제파일 컴파일

 

컴파일이 성공했다면 아래와 같이 obj-intel64라는 폴더안에 해당 예제파일.dll이 생성되어야 한다. obj-intel64는 ManualExamples 폴더내에 있다.

 

 

실행은 아래와 같이 하면 된다. (예시: notepad.exe)

..\..\..\pin.exe -t obj-intel64\inscount1dll -- "C:\Windows\System32\notepad.exe" "C:\Temp\test.txt"

 

댓글

Designed by JB FACTORY