[제1부. 헬로 핀툴 월드! 목차] (제1부 - 총 52페이지)
[제1장. Pin 환경 구성 및 PinTool 구현 환경 구성]
[제1절. Pin이 뭐라고 했더라? 기억나지 않으면 제0부를 보자]
[제2절. 동적 바이너리 계측? 프로그램을 분석 하는 기술이지.]
[제3절. Pin과 PinTool은 뭐가 다를까?]
[제4절. 제1부를 실습하기 위하여 필요한 도구들은?]
[제5절. Pin을 다운로드 받고 PinTool을 컴파일 해보자]
[제6절. 컴파일한 PinTool로 프로그램을 분석하기]
[제2장. Pin API - 계측 코드]
[제1절. 어디에 분석용 코드를 삽입할 것인가?]
[제2절. 삽입할 분석용 코드의 위치를 정해보자]
[제3장. Pin API - 분석 코드]
[제1절. 어떠한 분석용 코드를 삽입할 것인가?]
[제2절. 삽입할 분석용 코드의 내용을 정해보자]
[제4장. 계측 코드와 분석 코드의 콜라보]
[제1절. 어디에 어떠한 분석용 코드를 삽입할 것인가?]
[제2절. 삽입할 분석용 코드의 인자를 정해보자]
[제5장. 계측 인자, 그 이름은 IARG]
[제1절. 삽입 함수(@@@_InsertCall)에서의 계측 인자]
[제2절. 추가 인자를 요구하는 계측 인자]
[제6장. 제1부를 실습하기 위해서라면 알고 있어야 하는 API]
[제1절. PIN을 접두어로 가지는 API]
[제2절. INS를 접두어로 가지는 API]
[제3절. RTN을 접두어로 가지는 API]
[제4절. IMG를 접두어로 가지는 API]
[제5절. SEC을 접두어로 가지는 API]
[제6절. 모든 코드를 순회하여 분석하자. Visit Everything!]
[제7장. 실습하기! Hello PinTool World!]
[참고문헌]
[Appendix. 실습 문제 소스코드]
[제2부. 핀툴로 AbexCrackMe#1 크랙하기 목차] (제2부 - 총 51페이지)
[제1장. AbexCrackMe를 크랙해보자]
[제1절. AbexCrackMe가 뭐지?]
[제2절. 제2부를 실습하기 위하여 필요한 도구들은?]
[제2장. 디버거는 도대체 어떤 녀석이지?]
[제1절. 정적 분석이란? 동적 분석이란?]
[제2절. 디버거를 사용하는 방법]
[제3절. 디버거로 AbexCrackMe 크랙하기]
[제3장. 핀툴로도 이런게 가능할까?]
[제1절. 디버거로 할 수 있는 것, 핀툴로 할 수 있는 것]
[제2절. 핀툴로 AbexCrackMe를 분석해보자. 필요한 API는 무엇일까?]
[제3절. 인자값과 반환값, 그리고 레지스터의 값을 모두 출력해보자]
[제4절. 인자값과 반환값, 그리고 레지스터의 값을 모두 변조해보자]
[제5절. 핀툴에서의 포인터 연산, 그리고 간접분기문]
[제4장. 실습하기! AbexCrackMe#1 with PinTool]
[참고문헌]
[Appendix. 실습 문제 소스코드]
[제3부. 핀툴로 UPX 언패킹하기] (제3부 - 총 51페이지)
[제1장. UPX를 언패킹해보자]
[제1절. 제3부를 실습하기 위하여 필요한 도구들은?]
[제2절. 패킹이 도대체 뭐지?]
[제3절. 언패킹 루틴을 구현해보자]
[제4절. UPX란 무엇일까?]
[제2장. 이제는 알아야 한다. PE(Portable Executable) 구조]
[제1절. 패킹이 적용된 경우에 정적 분석이 어려워지는 이유는?]
[제2절. 그럼에도 불구하고 PE 구조를 공부해야 하는 이유는?]
[제3절. PE 구조 핵심만 파헤치기]
[제4절. 파일 상태에서의 PE 구조, 이미지 상태에서의 PE 구조]
[제3장. 당신은 UPX를 분석할 준비가 되었다]
[제1절. UPX로 패킹을 적용해보자]
[제2절. 정적 분석을 통하여 UPX의 패킹 원리를 알아보자]
[제3절. 동적 분석을 통하여 UPX의 언패킹 원리를 알아보자]
[제4절. 디버거로 UPX를 언패킹한다면 어떻게 될까?]
[제4장. 핀툴로도 이런게 가능할까?]
[제1절. 언패킹을 하기 위하여 필요한 것은?]
[제2절. 패킹된 프로그램의 원본 오브젝트를 추출해보자]
[제3절. 패킹된 프로그램의 원본 임포트 정보를 추출해보자]
[제4절. 패킹된 프로그램의 원본 엔트리포인트를 추출해보자]
[제5절. 추출한 내용들로 프로그램 재건은 어떻게 할까?]
[제5장. 실습하기! UPX Unpacking with PinTool]
[참고문헌]
[Appendix. 실습 문제 소스코드]
[제4부. 핀툴로 Anti-PinTool 우회하기] (제4부 - 총 50페이지)
[제1장. Anti-PinTool에 대하여 알아보자]
[제1절. 제4부를 실습하기 위하여 필요한 도구들은?]
[제2절. Anti-Analysis란 무엇일까?]
[제3절. Anti-PinTool은 무엇일까?]
[제2장. Anti-PinTool을 구현해보자]
[제1절. Anti-PinTool의 분류]
[제2절. API 기반의 Anti-PinTool 구현하기]
[제3절. 시간 기반의 Anti-PinTool 구현하기]
[제4절. 예외 기반의 Anti-PinTool 구현하기]
[제3장. Anti-PinTool을 우회해보자]
[제1절. 디버거로 API 기반의 Anti-PinTool 우회하기]
[제2절. 디버거로 시간 기반의 Anti-PinTool 우회하기]
[제3절. 디버거로 예외 기반의 Anti-PinTool 분석하기]
[제4장. Anti-Anti-PinTool을 구현해보자]
[제1절. 핀툴로 API 기반의 Anti-PinTool 우회하기]
[제2절. 핀툴로 시간 기반의 Anti-PinTool 우회하기]
[제3절. 핀툴로 예외 기반의 Anti-PinTool 우회하기]
[제5장. 실습하기! Anti-Anti-PinTool with PinTool]
[참고문헌]
안녕하세요. 루니프입니다.
1) 정보보안 분야에 종사한지 9년차입니다.
2) 프로그래밍 및 정보보안 관련 강의 경력 다수 있으며,
3) 특히 핀툴을 이용한 프로그래밍을 여러번 강의한 바 있습니다.
저는 소프트웨어 보호 및 소프트웨어 분석 분야에 몸담고 있습니다.
실제 여러 기업 및 기관과 함께 프로젝트를 수행한 경력도 다수 있습니다.
저는 이번 전자책을 발간하여 대한민국의 분석가, 보안인, 더 나아가 프로그래머들에게
소프트웨어 분석은 결코 어렵지 않다는 것을 알려드리고자 합니다.
이를 위하여 작성한 전자책, 핀툴 프로그래밍 기본서를 배포하는 방법을 찾다가
크몽이라는 아주 좋은 사이트를 만나게 되었습니다.
이 곳에서 독자 여러분들과 여러가지 교류하고 싶습니다.
본 전자책은 [제1부] ~ [제4부]까지 4개의 "부(Part)"로 구성되어 있습니다. (총 4부작)
※ 각 부 당 한부에 15,000원입니다. 구매희망 독자께서는 구매 시 필요한 "부"의 숫자와 "이메일주소"를 알려주시면 됩니다.
[핀툴 프로그래밍 기본서] - 제1부. 헬로 핀툴 월드!
[핀툴 프로그래밍 기본서] - 제2부. 핀툴로 AbexCrackMe#1 크랙하기
[핀툴 프로그래밍 기본서] - 제3부. 핀툴로 UPX 언패킹하기
[핀툴 프로그래밍 기본서] - 제4부. 핀툴로 Anti-PinTool 우회하기
(각 부의 상세 목차는 업로드된 이미지 혹은 "제0부. 핀툴 소개"를 참고하시기 바랍니다. 기본적으로는 제1부에서부터 시작하여 공부하시는 것을 권장합니다.)
본 전자책의 1차적인 목표는 "핀툴(PinTool)"을 설치하여 이를 활용하는 것입니다.
핀툴은 소프트웨어 분석용 프레임워크이며, 흔히들 사용할 수 있는 디버거, 디스어셈블러와 마찬가지로
프로그램을 분석할 수 있게 하는 도구 중 하나입니다.
2차적인 목표는 "일반인들도 프로그램을 분석할 수 있다"는 것을 책을 통하여 학습하는 것입니다.
역공학이라고 하면 막연히 어려움을 느끼는 독자분들을 위하여, 전자책 뿐 아니라 교류를 할 수 있는 장을 제공하고자 합니다.
저자는 이전에 핀툴 프로그래밍 기본서 - 제0부. 핀툴 소개를 작성하여 구글문서 형태로 무료배포한 바 있습니다.
저자는 핀툴 프로그래밍 기본서를 제4부에 걸쳐서 작성하였으며, 핀툴 뿐 아니라 역공학에 관련된 많은 내용을 수록하였습니다.
※ [핀툴 프로그래밍 기본서]는 구글문서를 통하여 지속적으로 업데이트 될 예정입니다.
해당 내용에 관심이 있으시다면 루니프에게 메일을 보내주시거나 아래 링크를 참고해주세요.
핀툴 프로그래밍 기본서 - 제0부. 핀툴 소개
https://docs.google.com/document/d/1EfxHEVizKFN2yM_ItTb7i3FX4ShCyIcC_ZLnNMsNDIE/edit?usp=sharing
이런 분들은 핀툴 프로그래밍 기본서의 정독을 추천합니다.
- 프로그램 역공학에 관심이 있으신 분
- 디버거 및 디스어셈블러를 다루어 본 적이 있어서 다른 분석 도구에 관심이 가는 분
- 프로그램의 구조 및 동작 원리를 눈으로 파악하고 싶은 분
- 특정한 자료가 주어지면 끝까지 읽을 열정이 있는 분
- 본인이 그래도 C언어는 파일입출력 정도까지는 공부한 것 같다 하는 분
- 본인이 핀툴의 기본적인 부분을 학습하고 싶다고 하는 분
- 핀툴을 활용하여 Windows 환경에서의 32비트 실행 파일을 분석하고 싶으신 분
이런 분들은 핀툴 프로그래밍 기본서의 정독을 비추천합니다.
- 프로그램 역공학에 전혀 관심이 없으신 분
- 아직 다른 분석 도구를 공부하고 계셔서 별도로 시간을 할애하기 어려운 분
- 인생에서 아직 C언어를 전혀 접하지 못한 분 (HelloWorld.exe를 본 적이 없으신 분 포함)
- 소프트웨어 보안 혹은 소프트웨어 구현 및 분석 분야에 관심이 없으신 분
- 본인이 핀툴 심화 과정을 학습하고 싶다고 하는 분
- 핀툴을 활용하여 Windows 환경이 아닌 타 환경(Linux, macOS)에서 분석을 진행하고 싶으신 분
제1부 ~ 제4부의 목차는 아래를 참고해주시기 바랍니다.
[제1부. 헬로 핀툴 월드! 목차] (제1부 - 총 52페이지)
[제1장. Pin 환경 구성 및 PinTool 구현 환경 구성]
[제1절. Pin이 뭐라고 했더라? 기억나지 않으면 제0부를 보자]
[제2절. 동적 바이너리 계측? 프로그램을 분석 하는 기술이지.]
[제3절. Pin과 PinTool은 뭐가 다를까?]
[제4절. 제1부를 실습하기 위하여 필요한 도구들은?]
[제5절. Pin을 다운로드 받고 PinTool을 컴파일 해보자]
[제6절. 컴파일한 PinTool로 프로그램을 분석하기]
[제2장. Pin API - 계측 코드]
[제1절. 어디에 분석용 코드를 삽입할 것인가?]
[제2절. 삽입할 분석용 코드의 위치를 정해보자]
[제3장. Pin API - 분석 코드]
[제1절. 어떠한 분석용 코드를 삽입할 것인가?]
[제2절. 삽입할 분석용 코드의 내용을 정해보자]
[제4장. 계측 코드와 분석 코드의 콜라보]
[제1절. 어디에 어떠한 분석용 코드를 삽입할 것인가?]
[제2절. 삽입할 분석용 코드의 인자를 정해보자]
[제5장. 계측 인자, 그 이름은 IARG]
[제1절. 삽입 함수(@@@_InsertCall)에서의 계측 인자]
[제2절. 추가 인자를 요구하는 계측 인자]
[제6장. 제1부를 실습하기 위해서라면 알고 있어야 하는 API]
[제1절. PIN을 접두어로 가지는 API]
[제2절. INS를 접두어로 가지는 API]
[제3절. RTN을 접두어로 가지는 API]
[제4절. IMG를 접두어로 가지는 API]
[제5절. SEC을 접두어로 가지는 API]
[제6절. 모든 코드를 순회하여 분석하자. Visit Everything!]
[제7장. 실습하기! Hello PinTool World!]
[참고문헌]
[Appendix. 실습 문제 소스코드]
[제2부. 핀툴로 AbexCrackMe#1 크랙하기 목차] (제2부 - 총 51페이지)
[제1장. AbexCrackMe를 크랙해보자]
[제1절. AbexCrackMe가 뭐지?]
[제2절. 제2부를 실습하기 위하여 필요한 도구들은?]
[제2장. 디버거는 도대체 어떤 녀석이지?]
[제1절. 정적 분석이란? 동적 분석이란?]
[제2절. 디버거를 사용하는 방법]
[제3절. 디버거로 AbexCrackMe 크랙하기]
[제3장. 핀툴로도 이런게 가능할까?]
[제1절. 디버거로 할 수 있는 것, 핀툴로 할 수 있는 것]
[제2절. 핀툴로 AbexCrackMe를 분석해보자. 필요한 API는 무엇일까?]
[제3절. 인자값과 반환값, 그리고 레지스터의 값을 모두 출력해보자]
[제4절. 인자값과 반환값, 그리고 레지스터의 값을 모두 변조해보자]
[제5절. 핀툴에서의 포인터 연산, 그리고 간접분기문]
[제4장. 실습하기! AbexCrackMe#1 with PinTool]
[참고문헌]
[Appendix. 실습 문제 소스코드]
[제3부. 핀툴로 UPX 언패킹하기] (제3부 - 총 51페이지)
[제1장. UPX를 언패킹해보자]
[제1절. 제3부를 실습하기 위하여 필요한 도구들은?]
[제2절. 패킹이 도대체 뭐지?]
[제3절. 언패킹 루틴을 구현해보자]
[제4절. UPX란 무엇일까?]
[제2장. 이제는 알아야 한다. PE(Portable Executable) 구조]
[제1절. 패킹이 적용된 경우에 정적 분석이 어려워지는 이유는?]
[제2절. 그럼에도 불구하고 PE 구조를 공부해야 하는 이유는?]
[제3절. PE 구조 핵심만 파헤치기]
[제4절. 파일 상태에서의 PE 구조, 이미지 상태에서의 PE 구조]
[제3장. 당신은 UPX를 분석할 준비가 되었다]
[제1절. UPX로 패킹을 적용해보자]
[제2절. 정적 분석을 통하여 UPX의 패킹 원리를 알아보자]
[제3절. 동적 분석을 통하여 UPX의 언패킹 원리를 알아보자]
[제4절. 디버거로 UPX를 언패킹한다면 어떻게 될까?]
[제4장. 핀툴로도 이런게 가능할까?]
[제1절. 언패킹을 하기 위하여 필요한 것은?]
[제2절. 패킹된 프로그램의 원본 오브젝트를 추출해보자]
[제3절. 패킹된 프로그램의 원본 임포트 정보를 추출해보자]
[제4절. 패킹된 프로그램의 원본 엔트리포인트를 추출해보자]
[제5절. 추출한 내용들로 프로그램 재건은 어떻게 할까?]
[제5장. 실습하기! UPX Unpacking with PinTool]
[참고문헌]
[Appendix. 실습 문제 소스코드]
[제4부. 핀툴로 Anti-PinTool 우회하기] (제4부 - 총 50페이지)
[제1장. Anti-PinTool에 대하여 알아보자]
[제1절. 제4부를 실습하기 위하여 필요한 도구들은?]
[제2절. Anti-Analysis란 무엇일까?]
[제3절. Anti-PinTool은 무엇일까?]
[제2장. Anti-PinTool을 구현해보자]
[제1절. Anti-PinTool의 분류]
[제2절. API 기반의 Anti-PinTool 구현하기]
[제3절. 시간 기반의 Anti-PinTool 구현하기]
[제4절. 예외 기반의 Anti-PinTool 구현하기]
[제3장. Anti-PinTool을 우회해보자]
[제1절. 디버거로 API 기반의 Anti-PinTool 우회하기]
[제2절. 디버거로 시간 기반의 Anti-PinTool 우회하기]
[제3절. 디버거로 예외 기반의 Anti-PinTool 분석하기]
[제4장. Anti-Anti-PinTool을 구현해보자]
[제1절. 핀툴로 API 기반의 Anti-PinTool 우회하기]
[제2절. 핀툴로 시간 기반의 Anti-PinTool 우회하기]
[제3절. 핀툴로 예외 기반의 Anti-PinTool 우회하기]
[제5장. 실습하기! Anti-Anti-PinTool with PinTool]
[참고문헌]
[Appendix. Anti-PinTool 통합본 소스코드]
[Appendix. 실습 문제 소스코드]
※ 전자책·노하우 상품 구매 시 필수 확인 사항
- 본 서비스는 컨설팅이 아닌, 전자책·노하우 자료 제공 서비스입니다.
(별도의 컨설팅은 포함되어 있지 않습니다)
- 구매하신 후, 거래 화면을 통해 해당 자료를 전달해드립니다.
- 전자책·노하우 자료를 수령하신 이후, 내용에 대한 질문은 언제든지 가능합니다.
- 전자책·노하우 자료가 발송된 이후에는 환불이 불가능합니다.
다른 분들이 함께 본 서비스
상품정보고시
제작자 또는 공급자 | LootNiP | 이용조건, 이용기간 | 상품 상세 참조 |
최소 시스템 사양, 필수 소프트웨어 | 상품 상세 참조 | 청약철회 또는 계약해지의 효과 | 상품 상세 참조 |
이용조건 | 상품 상세 참조 | 소비자상담전화 | (크몽 고객센터) 1544-6254 |