본문 바로가기
IT Tech/Tools

Pin - A Binary Instrumentation Tool 사용법

by 겸손하게 빚진자로, 밝게 인사 2014. 12. 17.
728x90

툴 개요 : Intel에서 제작한 Dynamic Binary Instrumentation Tool

 

활용 : Taint Analysis

untrust input을 정의하고 해당 값이 지나는 부분만 로깅

우리가 표시하고 싶은 부분을 오염시켜서 해당 부분이 지나간 부분만 표시하려고 할 때 사용

 

다운로드 : https://software.intel.com/en-us/articles/pintool-downloads

 

유사한 툴 : DynamoRIO와 리눅스 기반의 Valgrind

 

제약사항 : Intel 계열의 CPU만 지원

 

설치방법 :

  • Windows SDK 6.1 이상
  • MS 재배포 패키지
  • Cygwin의 Devel 패키지

 

PIN TOOL의 기본적인 사용법 :

step1 : 사용하고자 하는 툴(.cpp파일)을 make 명령어로 dll 파일로 변경한다.

pin에서 제공해주는 sample 소스를 가지고 테스트 하면

C:\pin\source\tools\MemTrace에서 membuffer.cpp를

.cpp 대신 .test로 확장자를 바꿔서 make 명령어로 컴파일하면

obj-ia32 디렉토리에 컴파일해서 나온 pin tool용 DLL 파일 생성된다.

 

step2 : 생성된 dll파일을 이용하여 pin.exe 프로그램을 실행한다.

C:\pin\source\tools\MemTrace>c:\pin\pin.exe -t obj-ia32\membuffer.dll -- C:\WINDOWS\system32\notepad.exe 


pin : Instrumentation Engine

application : Target Program

 

PINTOOL의 기본 제공 기능 : 설치 폴더의 tools에 있는 .cpp 프로그램 참조


pin_tool_cpp.zip


 

접두어는 적용범위를 정의 :

  • INS_ : instruction, 명령어 라인
  • RTN_ : for문, 루틴, instruction
  • IMG_ : 하나의 실행파일, 이미지
  • PIN_ : pin 전체에 적용

 

pintool의 api : pintool.org에서 제공

 

pintool.org에서 users manual 확인하여 추가 기능 사용방법 학습 가능

https://software.intel.com/sites/landingpage/pintool/docs/67254/Pin/html/

 

참고 : http://viiiin.tistory.com/61

반응형

'IT Tech > Tools' 카테고리의 다른 글

Nmap NSE와 wkhtmltopdf 활용  (0) 2015.01.20
IDA + python 스크립트 사용법  (0) 2015.01.04
Ollydbg 기본사용법  (0) 2014.12.12
BinDiff 기본사용법  (0) 2014.12.12
IDA 기본사용법  (0) 2014.12.12