[2008 codeengn conference 02] xcuter - 스타크래프트 맵핵 제작을 통해 알아보는...

20
2 nd CodeEngn Seminar 프트 맵핵 제작을 통해 알아보는 리버싱 발표자 : 강봉구 발표일 : 08.11.08 www.CodeEngn.com

Upload: gangseok-lee

Post on 22-Apr-2015

1.294 views

Category:

Technology


3 download

DESCRIPTION

2008 CodeEngn Conference 02 스타크래프트 게임의 맵핵을 구현하기 위한 리버싱 과정과 관련 기술설명과 맵핵 제작과정 설명 http://codeengn.com/conference/02

TRANSCRIPT

Page 1: [2008 CodeEngn Conference 02] xcuter - 스타크래프트 맵핵 제작을 통해 알아보는 리버싱

2nd CodeEngn Seminar

스타크래프트 맵핵타 래 맵핵제작을 통해 알아보는 리버싱

발표자 : 강봉구발표일 : 08.11.08

www.CodeEngn.com

Page 2: [2008 CodeEngn Conference 02] xcuter - 스타크래프트 맵핵 제작을 통해 알아보는 리버싱

어디서부터 손을 대야 할까?

Page 3: [2008 CodeEngn Conference 02] xcuter - 스타크래프트 맵핵 제작을 통해 알아보는 리버싱

호랑이한테 물려가도 정신만 차리면산채로 잡혀먹는 고통을 느낄 수 있다!

1. 과연 기능 구현이 가능한가?

Page 4: [2008 CodeEngn Conference 02] xcuter - 스타크래프트 맵핵 제작을 통해 알아보는 리버싱

2. 변하는 값을 찾아라.예) 맵이 다 보이면 TRUE, 아니면 FALSE …, Enable …

3. 값을 참조하는 부분을 찾아라.맵을 밝혀주는 루틴이 주변에 있을 가능성이 높기 때문

4. 찾은 함수를 디버거로 분석하자.맵을 밝혀주는 정확한 루틴을 찾아 분석하기 위함

5. 공격 목표 설정맵핵 구현을 위해 어느 곳을 어떻게 수정할지를 결정

Page 5: [2008 CodeEngn Conference 02] xcuter - 스타크래프트 맵핵 제작을 통해 알아보는 리버싱

2. 변하는 값을 찾아라.

Page 6: [2008 CodeEngn Conference 02] xcuter - 스타크래프트 맵핵 제작을 통해 알아보는 리버싱

3. 값을 참조하는 부분을 찾아라.

Page 7: [2008 CodeEngn Conference 02] xcuter - 스타크래프트 맵핵 제작을 통해 알아보는 리버싱

4. 찾은 함수를 디버거로 분석하자.

Page 8: [2008 CodeEngn Conference 02] xcuter - 스타크래프트 맵핵 제작을 통해 알아보는 리버싱

4. 찾은 함수를 디버거로 분석하자.

Page 9: [2008 CodeEngn Conference 02] xcuter - 스타크래프트 맵핵 제작을 통해 알아보는 리버싱

4. 찾은 함수를 디버거로 분석하자.

Page 10: [2008 CodeEngn Conference 02] xcuter - 스타크래프트 맵핵 제작을 통해 알아보는 리버싱

4. 찾은 함수를 디버거로 분석하자.

Page 11: [2008 CodeEngn Conference 02] xcuter - 스타크래프트 맵핵 제작을 통해 알아보는 리버싱

5. 공격 목표 설정

0048002213 0A

004A38831B 33

004A38741B 33

004A482F0F 84 90 E9

0046F87B84 80

004800128B 0F 33 C9

0049C38C85 80

004A39671B 33

Page 12: [2008 CodeEngn Conference 02] xcuter - 스타크래프트 맵핵 제작을 통해 알아보는 리버싱

코딩딩..

Page 13: [2008 CodeEngn Conference 02] xcuter - 스타크래프트 맵핵 제작을 통해 알아보는 리버싱

전역전역 키키훅할훅할DLLDLL

대상프로세스대상프로세스((StarcraftStarcraft))에에

삽입되어삽입되어 코드코드패치할패치할 DLLDLL

DLL DLL 인젝션인젝션& & 추가기능추가기능수행할로더수행할로더

Page 14: [2008 CodeEngn Conference 02] xcuter - 스타크래프트 맵핵 제작을 통해 알아보는 리버싱

전역 키 훅

Page 15: [2008 CodeEngn Conference 02] xcuter - 스타크래프트 맵핵 제작을 통해 알아보는 리버싱

코드 패치할 DLL – 패치 목록 정의

Page 16: [2008 CodeEngn Conference 02] xcuter - 스타크래프트 맵핵 제작을 통해 알아보는 리버싱

코드 패치할 DLL – 패치하는 함수

Page 17: [2008 CodeEngn Conference 02] xcuter - 스타크래프트 맵핵 제작을 통해 알아보는 리버싱

로더 - 스타크래프트 프로세스 실행

Page 18: [2008 CodeEngn Conference 02] xcuter - 스타크래프트 맵핵 제작을 통해 알아보는 리버싱

로더 - 코드 패치할 DLL 인젝션

Page 19: [2008 CodeEngn Conference 02] xcuter - 스타크래프트 맵핵 제작을 통해 알아보는 리버싱

로더 – 완성된 로더

Page 20: [2008 CodeEngn Conference 02] xcuter - 스타크래프트 맵핵 제작을 통해 알아보는 리버싱

감 사 합 니 다

2nd CodeEngn Seminar

감 사 합 니 다.

xcuter

www.returnaddr.org

www.CodeEngn.com