윈도우에서 DBI pintool 설치, 예제파일 컴파일 및 사용하기
- 시스템해킹/시스템
- 2020. 3. 31. 23:35
pintool은 DBI(Dynamic Binary Instrumentation) 툴 중 하나로 리눅스에서는 pintool 사용이 쉬운편인데 윈도우용 Pin은 정리된 글이 많이 없어서인지 사용하는데 삽질을 좀 했다.
cygwin64, Window pin 다운로드
64bit라는 가정하에 cygwin64, 윈도우용 Pin, 비쥬얼스튜디오 x64 가 필요하다.
cygwin64 다운로드 및 설치
일단 첫번째로 cygwin은 64bit 버전으로 아래 링크에서 다운받는다.
make를 사용하기 위한 것이므로 설치 중간에 패키지를 선택하는 부분에서 Devel Pakage만 Default->install로 변경해준다. 참고로 이 이후에 설치과정이 상~~~당히 오래걸린다.
정상적으로 설치가 완료됐다면 아래와 같이 창이 떠야 한다.
그리고 cygwin64가 설치된 폴더의 bin 폴더에 make가 있기 때문에 cygwin64\bin 경로를 Path 변수에 추가해준다.
Window Pin 다운 및 설치
윈도우 Pin은 아래 링크에서 zip파일을 다운받을 수 있다.
64bit 32bit 구분이 없기 때문에 원하는 버전을 다운받으면 되는데 난 비쥬얼 스튜디오 최신버전을 사용하고 있지 않으므로 뭔가 Pin 최신버전은 안될 것 같은 느낌적인 느낌에 Pin 3.11을 다운받아 주었다. zip파일이기 때문에 따로 설치과정 없이 압축만 풀면 끝이다.
윈도우 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창은 정말이지 캡쳐 시 화질이 너무 안좋다ㅠㅠ)
컴파일이 성공했다면 아래와 같이 obj-intel64라는 폴더안에 해당 예제파일.dll이 생성되어야 한다. obj-intel64는 ManualExamples 폴더내에 있다.
실행은 아래와 같이 하면 된다. (예시: notepad.exe)
..\..\..\pin.exe -t obj-intel64\inscount1dll -- "C:\Windows\System32\notepad.exe" "C:\Temp\test.txt"
'시스템해킹 > 시스템' 카테고리의 다른 글
FEBP(Fake EBP) 공격이란? (0) | 2020.04.10 |
---|---|
(작성중) ROP (Return Oriented Programming) (0) | 2020.03.30 |
RTL(Return to Library) Chaining 이란? (0) | 2020.03.26 |
WinAFL 빌드 과정 (Windows10) (0) | 2020.02.08 |