툴 개요 : 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 프로그램 참조
접두어는 적용범위를 정의 :
- 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 |